【问题标题】:Trouble with internal apache rewrite on hosting server托管服务器上的内部 apache 重写问题
【发布时间】: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


    【解决方案1】:

    尝试您的 RewriteRule ^contact/$ index.php?pid=3 [QSA,L] 规则,我的 Apache 尝试将内部重定向到 /full/filesystem/path/to/document/root/index.php,当用作 URL 路径时,它当然不会映射到正确的位置。将目标更改为/index.php?pid=3 似乎可行。

    【讨论】:

    • 感谢您的评论。我尝试更改 ^contact/$ /index.php?pid=3 [QSA,L] 但这不起作用。结果相同。
    猜你喜欢
    • 2013-09-25
    • 2011-12-19
    • 2021-10-12
    • 2014-01-10
    • 2013-08-10
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多