htaccess将所有请求重定向到索引,但不重定向到Webroot目录

时间:2019-03-19 21:54:10

标签: .htaccess

我有这个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等的文件夹)

我不知道该怎么做。我希望有人能提供帮助。

1 个答案:

答案 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]