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”,在其下创建一个文件。• 通过浏览器访问该文件。• 删除该文件和目录。• 现在,重定向突然起作用了。
可能是某个缓存出现了问题。不确定具体是什么原因。其他被删除的目录没有这个问题。只有这个目录有这个问题。