当查询字符串为空时,htaccess重写不起作用

时间:2019-02-06 18:28:52

标签: wordpress .htaccess redirect

我正在尝试将302从<policies> <policy> <pid>101</pid> <child> <aid>9001</aid> <tail> <rid>10001</rid> <name>Ramesh</name> </tail> <tail> <rid>10002</rid> <name>Suresh</name> </tail> <name>Pune</name> </child> <child> <aid>9002</aid> <tail> <rid>10003</rid> <name>Rahul</name> </tail> <tail> <rid>10004</rid> <name>Kirti</name> </tail> <name>Mumbai</name> </child> <name>Life In</name> <date>3Jan2017</date> </policy> <policy> <pid>102</pid> <child> <aid>9003</aid> <name>Delhi</name> </child> <name>Mobile</name> <date>8Aug2018</date> </policy> </policies> 重定向到mysite.com,以避免将mysite.com/root/重定向到mysite.com/?s=hello

当前我正在使用以下代码:

mysite.com/root/?s=hello

这不起作用,因为在两种情况下都重定向。

1 个答案:

答案 0 :(得分:2)

RedirectMatchRewriteCond不兼容。应该为RewriteRule,并且正则表达式模式也需要固定:

RewriteEngine On
RewriteBase /

# Redirect Home
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^/?$ /root/ [L,R=302]

# WordPress Redirect
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]

请注意在第一条规则中使用R=302来获得302的状态。