我想拒绝访问以/mapname
开头的网址,以便阻止/mapname/mapname2
和/mapname/file1
等网址。但是我想要允许1个网址,例如/mapname/mapname.php/something/something/something.php/something
。我如何使用htaccess做到这一点?
要拒绝访问,我使用了以下代码示例。这有效,但我无法弄清楚如何允许特定的网址。
RewriteCond %{REQUEST_URI} /mapname
RewriteRule ^.*$ / [R=301,L]
答案 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]