0

我很难从.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]
4

1 回答 1

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]
于 2013-06-30T20:50:49.330 回答