每当我申请.htaccess文件时,它会显示“500内部服务器错误”。当我输入空代码.htaccess文件时,它运行完美。如果我写下面的代码,它会显示错误。我的.htaccess代码是
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^user/(.*)/(.*)/$ user/searchUsrResult.php?selFindUsrCity=$1&txtFindUSrAreaRzip=$2 [L,NC]
答案 0 :(得分:1)
正如Carlos所说,你的RewriteRule没有问题,你已经禁用了mod_wrewrite。如果您正在使用WAMP,则可以通过取消注释行
来编辑httpd.conf来启用它LoadModule rewrite_module modules/mod_rewrite.so
也像安德鲁说的那样,请检查你有AllowOverride ALL。通过在httpd.conf中搜索DocumentRoot找到它并检查它是否是
AllowOverride All
在<Directory /> </Directory>
答案 1 :(得分:0)
您可能在apache配置中禁用了覆盖:
AllowOverride None
尝试更改它并查看问题是否已解决:
AllowOverride All
请点击此处查看此设置的完整选项:http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride
如果您正在使用VHOSTS,则可以在VHOST块内的块内更改此设置
答案 2 :(得分:0)
我认为RewriteRule
没有任何问题,因此更可能的问题是您没有启用mod_rewrite
。
如果您正在运行Ubuntu或Debian(或我认为的任何其他Debian派生词)执行(以root身份或使用sudo
):
a2enmod rewrite
service apache2 restart
另外,请检查安德鲁建议的AllowOverride
值,但这会忽略您的RewriteRule而不是抛出错误500.