Apache ModRewrite 在一个目录上失败

Apache ModRewrite 在一个目录上失败

Apache 重写问题

我正在将我的网站〔xahlee.org〕的部分内容移至〔wordyenglish.com〕。我在〔.htaccess〕中有以下内容:


RewriteRule ^PageTwo_dir/Vocabulary_dir/(.*)$ http://wordyenglish.com/words/$1 [R=301,L]
RewriteRule ^lit/(.*)$ http://wordyenglish.com/lit/$1 [R=301,L]
RewriteRule ^lojban/(.*)$ http://wordyenglish.com/lojban/$1 [R=301,L]

一切正常,除了目录以 〔lit/〕 开头。错误是重定向到原始域上的 404。

没有其他行包含“lit/”。lit 目录中没有〔.htaccess〕。

开启重写日志:

RewriteLog "logs/xx-RewriteLog.log"
RewriteLogLevel 9

似乎不允许或不适合我的网络托管环境。当出现这些行时,浏览器会在任何页面上返回服务器错误。

问题只发生在那个特定的目录中。似乎“lit/”有些魔力。有什么建议吗?

答案1

尝试将第二行替换为:

RewriteCond %{HTTP_HOST} .*
RewriteRule ^lit/(.*)$ http://wordyenglish.com/lit/$1 [R=301,L]

重写日志规则也必须放在 httpd.conf 或您的 vhost 配置中,而不是 .htaccess 中。

答案2

问题就这样解决了:

• 创建目录“lit”,在其下创建一个文件。• 通过浏览器访问该文件。• 删除该文件和目录。• 现在,重定向突然起作用了。

可能是某个缓存出现了问题。不确定具体是什么原因。其他被删除的目录没有这个问题。只有这个目录有这个问题。

相关内容