0

我刚刚将一个旧站点连同它的 mod_rewrite 规则一起移到了一个子文件夹,但它们不再起作用了。

例如,一条规则是:

#   Input:  noticias/
#   Output: noticias.php
RewriteRule ^noticias/?$  noticias.php

它应该从 mydomain.com/movedsite/noticias/ 到 mydomain.com/movedsite/noticias.php

它没有:错误消息说

未找到 - 在此服务器上未找到请求的 URL /mydomainfolder/movedsite/noticias.php。

正如另一个论坛问题中所建议的那样,我尝试在我的规则元素前面添加斜杠:

重写规则 ^/noticias/?$ /noticias.php

那也行不通。

有人可以帮我吗?谢谢!

4

1 回答 1

1

您可能需要设置 RewriteBase:

当您在每个目录 (htaccess) 上下文中的替换中使用相对路径时,需要此指令,除非以下任一条件为真:

  • 原始请求和替换位于 DocumentRoot 下(与通过其他方式(例如别名)可访问相反)。

  • 包含 RewriteRule 的目录的文件系统路径(以相对替换为后缀)作为服务器上的 URL 路径也是有效的(这种情况很少见)。

http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase

于 2012-09-05T23:31:47.193 回答