htaccess拒绝访问特定网址,但有1个例外

时间:2016-05-20 12:41:17

标签: .htaccess

我想拒绝访问以/mapname开头的网址,以便阻止/mapname/mapname2/mapname/file1等网址。但是我想要允许1个网址,例如/mapname/mapname.php/something/something/something.php/something。我如何使用htaccess做到这一点?

要拒绝访问,我使用了以下代码示例。这有效,但我无法弄清楚如何允许特定的网址。

RewriteCond %{REQUEST_URI} /mapname
RewriteRule ^.*$ / [R=301,L]

2 个答案:

答案 0 :(得分:1)

您可以使用:

RewriteRule ^mapname/something\.php/allow/this/uri/?$ - [L]
#Deny any other uri string starting with "/mapname
RewriteCond %{REQUEST_URI} ^/mapname
RewriteRule ^.*$ - [F,L]

答案 1 :(得分:1)

在单RewriteRule中,可以使用否定前瞻来做到这一点:

RewriteRule ^mapname(?!/something\.php/allow/this/uri/?$) - [F,L,NC]