htaccess重写不在localhost上工作

时间:2012-04-22 18:18:41

标签: php apache .htaccess mod-rewrite

虽然有很多类似的帖子,但我读过它们都无济于事。让我描述我的情况,希望有人可以解决这个问题。我有以下.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. “AllowOverride All”无处不在
  3. 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
    

    如果您需要更多信息,请与我们联系。


    老实说,不确定发生了什么。我没有改变任何事情。

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

2 个答案:

答案 0 :(得分:0)

尝试将您的RewriteRule更改为:

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

答案 1 :(得分:0)

请检查这两行并检查

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