如何根据查询字符串在 apache mod_rewrite 中禁止 url?
Posted
技术标签:
【中文标题】如何根据查询字符串在 apache mod_rewrite 中禁止 url?【英文标题】:How do I make a url forbidden in apache mod_rewrite, based on the query string? 【发布时间】:2010-11-08 09:58:51 【问题描述】:如何在 apache 中禁止以下网址;
main/index.php?site=ing
我尝试了以下方法;
RewriteRule ^main/index.php?site=ing - [F]
但没有运气......
【问题讨论】:
我在标题和标签中都添加了“查询字符串”,因此搜索查询字符串和 mod_rewrite 问题的人会找到这个。 【参考方案1】:你cannot match a query string in the RewriteRule,你该做的
RewriteCond %QUERY_STRING site=ing #Adjust the regexps with anchors
RewriteRule ^main/index.php - [F]
【讨论】:
【参考方案2】:应该这样做:
RewriteCond %QUERY_STRING (^|&)site=ing(&|$)
RewriteRule ^main/index\.php$ - [F]
【讨论】:
【参考方案3】:另一个非 apache 解决方案是在 index.php 文件中执行此操作。
在页面顶部添加类似的内容。
if(isset($_GET['site']) && $_GET['site'] == 'ing')
header('HTTP/1.1 403 Forbidden');
exit();
【讨论】:
以上是关于如何根据查询字符串在 apache mod_rewrite 中禁止 url?的主要内容,如果未能解决你的问题,请参考以下文章