我有这个htaccess文件
DirectoryIndex index.php
#enable apache rewrite engine
RewriteEngine on
#set your rewrite base
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
#Deliver the folder or file if it exists on the server directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Push every request to index.php
#RewriteRule !\.(js|ico|gif|jpg|png|pdf|css|map|swf|flv|xml)$ index.php [QSA,L]
RewriteRule !\.()$ index.php [QSA,L]
RewriteRule ^(webroot)($|/) - [L]
它可以工作,但是所有以js,ico,结尾的文件都可以直接访问。 现在我需要所有请求都重定向到/的htaccess 而且我认为这条规则很重要
RewriteRule!。()$ index.php [QSA,L]
但有一个例外,它们使用/ webroot目录的所有请求都不应重定向(这是包含图像,css,js等的文件夹)
我不知道该怎么做。我希望有人能提供帮助。
答案 0 :(得分:0)
我找到了解决方法:
DirectoryIndex index.php
Options -Indexes
RewriteEngine on
RewriteRule ^\.htaccess$ - [F]
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
RewriteRule ^(webroot)($|/) - [L]
RewriteRule !\.()$ index.php [QSA,L]