我有以下网站结构
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]