[英]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.