重写引擎条件目录


RewriteEngine conditional directories

我有以下网站结构

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]  

这成功地整理了我的 URL 并定向到正确的页面。

但是,它可以防止在大量使用 $_POST 和 $_GET 的管理员中执行任何功能。

那么有没有办法防止规则在/admin 中执行或将其限制为仅在顶级页面中执行?

只需在

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

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