htaccess将查询字符串重定向到主页

时间:2015-03-07 01:49:20

标签: php wordpress apache .htaccess redirect

对于我的某个网站,Google开始为以下网页编制索引:

www.domain.com/?index.php=en-id1&itemid=3711&view=21

他们在短短一天内将其中的几个编入索引,使该网站看起来有数千页。

除了尝试清理网站,修复安全问题,并让谷歌尝试从索引中删除这些网页。我想将这些页面重定向到主页本身,因此它会完全从URL中删除查询字符串。

这是一个wordpress网站,所以我在htaccess的wordpress重写规则之上加上了这样的重写条件:

<IfModule mod_rewrite.c>
RewriteEngine On 
RewriteCond %{QUERY_STRING} ^index.php*$
RewriteRule ^index\.php$ http://domain.com/%1 [R=301,L]
</IfModule>

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

如何将所有以/?index.php=en-id开头的网页重定向到我的主页?

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

<IfModule mod_rewrite.c>
  RewriteEngine On 
  RewriteCond %{QUERY_STRING} ^index.php
  RewriteRule ^(.*)$ http://domain.com/$1? [R=301,L]
</IfModule>

只有以&#34; index.php&#34;开头的查询字符串才会被删除。 此外,上面的代码段会重定向到您要去的任何页面。 如果您想要任何查询以&#34; index.php&#34;开头的请求始终重定向到主页。 您可以进行以下调整:

<IfModule mod_rewrite.c>
  RewriteEngine On 
  RewriteCond %{QUERY_STRING} ^index.php
  RewriteRule ^ http://domain.com/? [R=301,L]
</IfModule>

额外资源:

htaccess 301 redirect - Remove query string (QSA)