【发布时间】:2012-03-30 21:23:39
【问题描述】:
我试图在 XAMPP 上运行脚本,但得到“互联网服务器错误 500”。在实时服务器上运行时很好。我认为这是一个 .htaccess 错误。 htaccess 代码如下:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
我已通过取消注释该行来启用 htaccess:
LoadModule rewrite_module modules/mod_rewrite.so
在配置文件中。
有什么想法吗?
【问题讨论】:
-
极有可能(我对此持肯定态度)您有无限的重写循环(请查看您的错误日志以了解详细信息——它会告诉您确切的原因)。您的第二个重写规则将一遍又一遍地重写 - 您需要添加一些条件以防止进一步重写(不重写已经重写的 URL),例如
RewriteCond %{REQUEST_URI} !^/public/ -
错误日志指出:[Wed Mar 14 11:56:18 2012] [alert] [client ::1] C:/xampp/htdocs/widgets/mobile/mvc/framework/.htaccess : 此处不允许使用 RewriteEngine
-
@LazyOne,我已经添加了条件但仍然是同样的错误。
-
基于错误信息:查看
AllowOverride指令 -- httpd.apache.org/docs/current/mod/core.html#allowoverride 。您将需要在 Apache 主配置文件 中添加AllowOverride All或类似内容(例如 httpd.conf)——不要忘记在更改 httpd.conf 文件后重新启动 Apache(更改不会自动拾取)。 -
您的 .htaccess 文件在哪里?你能写下你的文件夹路径吗?