Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess将查询字符串重定向到主页_Php_Wordpress_Apache_.htaccess_Redirect - Fatal编程技术网

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

Php htaccess将查询字符串重定向到主页,php,wordpress,apache,.htaccess,redirect,Php,Wordpress,Apache,.htaccess,Redirect,对于我的一个网站,谷歌开始为如下页面编制索引: www.domain.com/?index.php=en-id1&itemid=3711&view=21 他们在一天之内就为其中的几个建立了索引,使得这个网站看起来有数千个页面 除了试图清理网站,修复安全问题,让谷歌尝试从索引中删除这些页面。我想将这些页面重定向到主页本身,这样就可以完全从URL中删除查询字符串 这是一个wordpress站点,所以我在htaccess中的wordpress重写规则之上设置了这样一个重写条件: &l

对于我的一个网站,谷歌开始为如下页面编制索引:

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>

重新启动发动机
RewriteCond%{QUERY_STRING}^index.php*$
重写规则^index\.php$http://domain.com/%1 [R=301,L]
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
如何将以/?index.php=en id开头的所有页面重新定向到我的主页

您可以尝试以下方法:

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

重新启动发动机
RewriteCond%{QUERY_STRING}^index.php
重写规则^(.*)$http://domain.com/$1? [R=301,L]
只有以“index.php”开头的查询字符串才会被删除。 此外,上面的代码片段将重定向到您要转到的任何页面。 如果您希望任何查询以“index.php”开头的请求始终重定向到主页。 可以进行以下调整:

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

重新启动发动机
RewriteCond%{QUERY_STRING}^index.php
重写规则^http://domain.com/? [R=301,L]
额外资源: