mod_rewrite限制访问除index + rewrite链接之外的所有文件

时间:2014-01-14 00:00:55

标签: perl apache .htaccess mod-rewrite

我知道如何限制对index.pl,search.pl,.js和.css文件以外的所有文件的访问:

RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|tiff|css|js)$ [NC]

RewriteRule ^(?!(index|search)\.pl).+$ - [F,NC]

我也知道如何重写链接:

RewriteEngine On

RewriteRule ^([A-Za-z0-9-]+)/((edit|delete))/([0-9]+)$ index.pl?mode=$1&action=$2&id=$3 [L]
RewriteRule ^([A-Za-z0-9-]+)/((add)/?$ index.pl?mode=$1&action=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.pl?mode=$1 [L] 

我如何能同时使用这个功能(只允许少量文件+重写链接)。

1 个答案:

答案 0 :(得分:1)

在拒绝规则之前重写:

RewriteEngine On

RewriteRule ^([A-Za-z0-9-]+)/(edit|delete|info)/([0-9]+)$ index.pl?mode=$1&action=$2&id=$3 [L]
RewriteRule ^([A-Za-z0-9-]+)/(add)/?$ index.pl?mode=$1&action=$2 [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ index.pl?mode=$1 [L] 

RewriteCond %{REQUEST_URI} !\.(jpe?g|gif|bmp|png|tiff|css|js)$ [NC]
RewriteRule ^(?!(index|search)\.pl).+$ - [F,NC]