2014-12-07 121 views
1

如果这已经回答了类似的问题,我提前道歉。我试图阻止与查询字符串,看起来像这样的请求:wordpress htaccess阻止查询字符串

?alt_id=nnnn&alt_ts=&alt_ts=&alt_ts...

其中nnnn是一些数字和...表示&alt_ts=重复无数次。

,而不是测试此特定的查询字符串,我想测试只是&alt_ts=&alt_ts就足够一个好的开始,所以我说这个规则为.htaccess,但它不工作:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{QUERY_STRING} ^.*(&alt_ts=&alt_ts).* [NC] 
RewriteRule ^(.*)$ - [F,L] 
</IfModule> 

但是,它不起作用。我希望有一个可以解决这个问题的htaccess专家。谢谢。

这是我目前的.htaccess文件,修改由anubhava的建议:

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{QUERY_STRING} ^alt_id=[^&]+&alt_ts= [NC] 
RewriteRule^- [F,L] 
RewriteBase/
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

回答

3

您可以使用:

RewriteEngine On 

RewriteCond %{THE_REQUEST} \s/+[^?]*\?alt_id=[^&]+&alt_ts= [NC] 
RewriteRule^- [F,L] 

确认这是第一个规则略低于RewriteEngine线您的主要WP .htaccess文件。

+0

感谢您的建议,但它不工作。我在浏览器地址栏输入'domainname.com/page-name/?alt_id = 1&alt_ts =',并显示'domainname.com/page-name' – yitwail 2014-12-07 07:53:59

+0

我在我的问题中添加了修改后的.htaccess文件。谢谢 – yitwail 2014-12-07 08:15:57

+1

工作!感谢百万:)任何想法为什么我们以前的尝试失败? – yitwail 2014-12-07 08:50:05