gpt4 book ai didi

apache - RewriteCond 范围

转载 作者:行者123 更新时间:2023-12-01 10:21:25 26 4
gpt4 key购买 nike

我想测试底部的两个规则是否存在文件,但它似乎只适用于第一个。第二条规则会错误地匹配我的/style.css 文件并显示 php 页面而不是 style.css。

[L] 标志之前,它不应该测试所有下一个规则的文件是否存在吗?

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)/([^/]+)/?$ browse_folder.php?username=$1&folder=$2
RewriteRule ^([^/]+)/?$ browse_user.php?username=$1 [L]

如果我在两行之前重复 file_exists 测试,它会按预期工作。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)/([^/]+)/?$ browse_folder.php?username=$1&folder=$2

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^/]+)/?$ browse_user.php?username=$1 [L]

最佳答案

RewriteCond 只适用于下一个RewriteRule。您可以制定一个单独的规则来跳过其他重写规则之上的所有文件和目录。

RewriteEngine On

# skip all existing files and directories
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/?$ browse_folder.php?username=$1&folder=$2 [L,QSA]

RewriteRule ^([^/]+)/?$ browse_user.php?username=$1 [L,QSA]

关于apache - RewriteCond 范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51630503/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com