htAccess 重写在本地主机上不起作用


htaccess rewrites not working on localhost

虽然有很多类似的帖子,但我都读过,但无济于事。 让我描述一下我的情况,希望有人能解决这个问题。 我有以下.htaccess文件位于/Users/myusername/Sites/domain.com/public_html/.htaccess中。 DocumentRoot 设置为/Users/myusername/Sites/domain.com/public_html。

RewriteEngine on
options +FollowSymLinks
RewriteBase /demo 
RewriteRule ^/demo/evaluate/1$ /demo/evaluate/index.php?eval_id=1 [L]

现在进行设置:

  1. httpd.conf 中的"LoadModule rewrite_module modules/mod_rewrite.so"未添加注释。
  2. "允许覆盖所有"无处不在

htaccess重定向有效,但由于某种原因,我只是在错误日志中不断收到以下错误:

[Sun Apr 22 11:14:09 2012] [error] [client ::1] File does not exist: /Users/myusername/Sites/domain.com/public_html/demo/evaluate/1

如果您需要更多信息,请告诉我。


老实说,不知道发生了什么。 我没有改变任何东西。

这可能是所有设置和反馈的神奇组合。 但现在它正在发挥作用。 这就像一个纸牌屋,我只是要退后一步,惊叹于它,直到我不小心再次打破它。

尝试将重写规则更改为:

RewriteRule ^demo/evaluate/1$ demo/evaluate/index.php?eval_id=1 [NC,QSA,L]

你能检查一下这两行并检查一下吗

RewriteBase /demo 
RewriteRule ^/demo/evaluate/$1 /demo/evaluate/index.php?eval_id=$1 [L]