我很难从.htaccess
获得正确的重定向。我正在尝试的重定向如下:
原始网址:
http://www.mysite.com/index.php/contact-us?id=12
应该直接:
http://www.mysite.com/index.php/new-contact-request-form
我尝试了以下样品的各种变化而没有运气。关于我哪里出错的任何想法?
示例1:
Redirect /index.php/contact-us?id=12 http://www.mysite.com/index.php/new-contact-request-form
示例2:
RewriteCond %{QUERY_STRING} ^index.php/contact-us?id=12$
RewriteRule ^index\.php\/new\-contact\-request\-form$ http://www.mysite.com/? [R=301,L]
示例3:
RewriteCond %{HTTP_HOST} ^mysite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.com\/index\.php\/contact\-us\?id\=12$
RewriteRule ^/?$ "http\:\/\/www\.mysite\.com\/index\.php\/new\-contact\-request\-form" [R=301,L]
答案 0 :(得分:0)
网址结构:
%{QUERY_STRING}
变量包含url查询字符串(在我们的例子中id = 12),
另一方面,RewriteRule
仅在url路径上运行(不包括查询字符串),
所以基本上,下面的代码检查查询字符串是否等于id=12
以及url路径是否等于index.php/contact-us
,如果是,则会发生重定向
RewriteEngine on
RewriteCond %{QUERY_STRING} ^id=12$
RewriteRule ^index\.php/contact\-us$ /index.php/new-contact-request-form? [R=301,L]