RewriteEngine条件目录

时间:2012-05-03 20:02:22

标签: php mod-rewrite

我有以下网站结构

index.php   
services.php   
contact.php   
/admin

以及.htaccess中的以下内容:

RewriteEngine on  
RewriteCond %{REQUEST_URI} !(\.[^./]+)$  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteRule (.*) /$1.php [L]  
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+\.)+php\ HTTP  
RewriteRule ^(.+)\.php$ /$1 [R=301,L]  

这会成功整理我的网址并指向正确的网页。

然而,它会阻止在管理员中执行任何功能,其中$ _POST和$ _GET被大量使用。

那么有没有办法阻止规则在/ admin中执行或限制它只在顶级页面中执行?

1 个答案:

答案 0 :(得分:1)

只需在RewriteEngine on行之后(在两个规则之前)添加此规则:

RewriteRule ^admin(/.*|)$ - [L]