0
我在我的.htaccess文件下面的代码,这意味着到一个目录转换为查询字符串参数:的.htaccess重写规则更改目录要查询字符串500内部服务器错误
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^g/XXXXXXXXXX-WINEGIFTS1$ g/index.php?u=XXXXXXXXXX-WINEGIFTS [L,QSA]
RewriteRule ^g/(.*)$ g/index.php?u=$1 [L,QSA]
所以,http://example.com/g/SOMETEXT应得到重写为http://example.com/g/index.php?u=SOMETEXT
就目前而言,它工作正常。
但是,如果我取消了注释行的注释,则会出现500内部服务器错误。
该行是为了重写一个特定的URL,http://example.com/g/XXXXXXXXXX-WINEGIFTS1,如http://example.com/g/index.php?u=XXXXXXXXXX-WINEGIFTS
奇怪的是,我有不同的域上运行完全相同的代码,在不同的服务器上,并能正常工作。
有什么想法引起这个错误?
谢谢!
感谢。我明白你对循环的看法,我认为(尽管我认为L属性可以防止这种情况),但是我仍然在上面的代码中遇到了500错误。 – Mark
@Mark L标志并不会停止规则处理,它只是告诉引擎退出当前的重写周期,并为处理的第二阶段提出请求 – starkeen
好的,理解,谢谢。 – Mark