繁体   English   中英

在托管服务器上重写内部apache的问题

[英]Trouble with internal apache rewrite on hosting server

我在托管服务器上进行内部重写时遇到麻烦。 这在我的开发和测试服务器上可以很好地工作,但是将.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,因此看来我只是点击目录的base / root。

有任何想法吗??

谢谢! 汉吉

更新:从托管服务提供商处收到一封电子邮件,指出他们不熟悉我的“重写风格”,这是他们的建议:

RedirectPermanent /contact/ http://www.mydomain.com/index.php?pid=3

嗯...白痴 我希望我们能找出阻碍我的重写工作的原因,以便我可以回顾一下它们。 我猜这是Apache的配置问题? 请帮忙。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM