我遇到了一个小问题。我有一个很好的设置,mod重写了对网站的所有请求 - 唯一的是它还重写了我不想包含的目录。
我在.htaccess文件中使用此代码:
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php?section=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ index.php?section=$1&page=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ index.php?section=$1&page=$2&split=$3 [L]
理想情况下,我希望能够排除两个目录 - 访问/和编辑/ - 编辑/还需要拥有自己的一套规则:
RewriteRule ^([^/\.]+)/?$ index.php?action=$1 [L]
我可以通过直接链接到任一目录中的.php文件来解决这个问题,但这并不理想。
有什么建议吗?
答案 0 :(得分:2)
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(access|edit)/
RewriteRule ^([^/\.]+)/?$ index.php?section=$1 [L]
...
(这是未经测试的,但它应该很接近)
答案 1 :(得分:1)
另一种想法(也未经测试):
RewriteEngine on
RewriteRule ^/access/ - [L]
RewriteRule ^/edit/([^/\.]+)/?$ /edit/index.php?action=$1 [L]
... (other rules)
这样可以避免在每条规则之前重复RewriteCond
。