的.htaccess返回500,但被固定的重新排列规则时
一些奇怪的东西在.htaccess文件发生的.htaccess返回500,但被固定的重新排列规则时
文件不工作
RewriteEngine On RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/([a-z0-9_-]+)$ $1/post?id=$2 [L,QSA]
RewriteRule ^(.*?)/edit/([a-z0-9_-]+)$ $1/editpost.php?id=$2 [L,QSA]
#RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
但这部作品
RewriteEngine On RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?)/edit/([a-z0-9_-]+)$ $1/editpost.php?id=$2 [L,QSA]
RewriteRule ^(.*?)/([a-z0-9_-]+)$ $1/post?id=$2 [L,QSA]
#RewriteRule ^users/(\d+)*$ ./profile.php?id=$1
我只是重新安排了重写规则,并解决了问题。谁能解释为什么会发生这种情况我被困在这里超过2小时。
我是新来的URL重写,所以请详细解释。而实际上[L,QSA]呢?
回答:
RewriteCond
仅适用于最近的RewriteRule
。因此,在您第一个例子是只应用于此规则:
RewriteRule ^(.*?)/([a-z0-9_-]+)$ $1/post?id=$2 [L,QSA]
两个底部RewriteRule
没有任何RewriteCond
执行,并导致无限循环。
你可以有你的规则:
RewriteEngine On RewriteBase/
# skip all files and directories from rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule^- [L]
RewriteRule ^(.*?)/edit/([\w-]+)/?$ $1/editpost.php?id=$2 [L,QSA]
RewriteRule ^users/(\d+)/?$ profile.php?id=$1 [L,QSA]
RewriteRule ^(.*?)/([\w-]+)/?$ $1/post?id=$2 [L,QSA]
以上是 的.htaccess返回500,但被固定的重新排列规则时 的全部内容, 来源链接: utcz.com/qa/262955.html