我在网站上设置了一堆htaccess规则。
RewriteEngine On
RewriteBase /
RewriteRule ^google73947f9bfca52abe.html$ google73947f9bfca52abe.html [L]
RewriteRule ^page\/(.*)$ index.php?title=page&r=$1 [L]
RewriteRule ^media\/(.*)$ index.php?title=page&r=$1 [L]
RewriteRule ^admin/$ admin/php [L]
RewriteRule ^index\.html$ index\.php [L]
RewriteRule ^crons/$ crons/ [L]
#I did this to forward request to directory
RewriteRule ^sites/$ sites/ [L]
#This is the rule creating problem
#RewriteRule ^sites/([^.]+)$ sites/$1 [L]
RewriteRule ^([^.]+)\.html$ /index.php?title=$1
RewriteRule ^(.*)\.htm index\.php\?action=$1 [L]RewriteRule ^([^.]+)$ /index.php?title=$1
我希望覆盖那些以site.com/sites
开头的规则的所有规则,而不是按照配置的目的转到index.php
。
每当我转到site.com/sites
时,网站都会将我带到site.com/site/?title=sites
,但我仍然可以将其作为文件夹进行浏览,但每当我打开一个html文件时就像说test.html
一样,它直接带我到在以前的目录中的index.php,假设是。
如何编写让我直接自由浏览的规则?
答案 0 :(得分:0)
使用END标志而不是L标志绝对会结束重写规则。
答案 1 :(得分:0)
您必须配置为在遇到行sites
时省略所有规则。
以下是您的解决方案:
RewriteEngine On
RewriteRule ^(sites) - [L]
#Rest of your rules