【发布时间】:2012-06-30 04:44:53
【问题描述】:
我在托管服务器上进行内部重写时遇到问题。这在我的开发和测试服务器上完美运行,但是当 .htaccess 移植到生产共享主机时,内部重写不会发生。
.htaccess 正在被读取(已验证) 带有“重定向”的 RewriteRule 有效,但内部重写无效。浏览器中的 URL 显示正确的友好 url,但内部重写没有发生,我最终在主页上。
这是重写的一部分:
Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} -f [OR]
RewriteCond %{SCRIPT_FILENAME} -d [OR]
RewriteCond %{ENV:REDIRECT_STATUS} !^$
RewriteRule .* - [L]
RewriteRule ^contact/$ index.php?pid=3 [QSA,L]
所以我在浏览器中的 URL 将显示 www.mydomain.com/contact/ 但我在主页上。
如果我将 RewriteRule ^contact/$ 更改为 ^contact/$ http://www.mydomain.com/index.php?pid=3 我会被重定向,但这不是我想要的。我想要内部重写。
查看日志,我没有收到 404,所以看来我只是在访问目录的基础/根目录。
有什么想法吗??
谢谢! 韩纸
更新:收到了来自托管服务提供商的电子邮件,称他们不熟悉我的重写“风格”,这就是他们的建议:
RedirectPermanent /contact/ http://www.mydomain.com/index.php?pid=3
嗯...白痴。我希望我们能找出是什么阻止了我的重写工作,这样我就可以用一些东西来回顾它们。我猜这是Apache的配置问题?请帮忙。
【问题讨论】:
标签: apache mod-rewrite seo rewrite internal