0

每当我应用 .htaccess 文件时,它都会显示“500 内部服务器错误”。当我放入空代码 .htaccess 文件时,它运行良好。如果我写下面的代码,它会显示错误。我的 .htaccess 代码是

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^user/(.*)/(.*)/$ user/searchUsrResult.php?selFindUsrCity=$1&txtFindUSrAreaRzip=$2 [L,NC]
4

3 回答 3

1

正如 Carlos 提到的,您的 RewriteRule 没有问题,您禁用了 mod_wrewrite。如果您使用的是 WAMP,则可以通过取消注释该行来编辑 httpd.conf 来启用它

LoadModule rewrite_module modules/mod_rewrite.so

就像安德鲁说的那样,请检查您是否有 AllowOverride ALL。通过在 httpd.conf 中搜索 DocumentRoot 找到它并检查它是否是

AllowOverride All

<Directory /> </Directory>

于 2013-02-22T11:28:56.583 回答
0

我看不出有任何问题RewriteRule,所以更可能的问题是您没有mod_rewrite启用。

如果您正在运行 Ubuntu 或 Debian(或我想的任何其他 Debian 衍生产品)执行(作为 root 或 with sudo):

a2enmod rewrite
service apache2 restart

另外,AllowOverride按照 Andrew 的建议检查值,但这只会忽略您的 RewriteRule 而不是抛出错误 500。

于 2013-02-22T11:08:01.180 回答
0

您可能在 apache 配置中禁用了覆盖:

AllowOverride None

尝试更改它并查看问题是否已解决:

AllowOverride All 

有关此设置的完整选项,请参见此处:http ://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

如果您使用的是 VHOSTS,则可以在 VHOST 块内的块内更改此设置

于 2013-02-22T11:06:41.197 回答