繁体   English   中英

如何使用.htaccess mod rewrite将php URL重定向为字符串?

[英]How to use .htaccess mod rewrite to redirect php url as a string?

我一直在努力使:

http://site.com/file.php?x=foo

重定向到:

http://newsite.com/something/completely/different/

使用以下内容:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^file\.php?x=foo$ http://newsite.com/something/completely/different/ [R=301,NC,L]

</IfModule>

但是它什么也没做(只是加载相同的旧页面,就像我从未接触过htaccess一样)。

有什么我想念的吗?

非常感谢您的帮助!

? .php的末尾使最后一个p可选(因此.phpx=foo.phx=foo将匹配)。 实际上,它并不是比赛中的角色。 尝试转义? 喜欢: \\?

编辑

对于那些想知道解决方案是什么的人:

查询字符串参数不会传递给RewriteRule匹配的字符串。 因此,您必须首先在QUERY_STRING上创建一个RewriteCond ,然后匹配不带参数的url。 例如:

RewriteCond %{QUERY_STRING} x=foo
RewriteRule ^file\.php$ http://newsite.com/something/completely/different/ [R=301,NC,L]

可能/希望有一种更好的方法来执行此操作(因为此RewriteCond将级联为其他规则,这很烦人)。

暂无
暂无

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

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