【问题标题】:htaccess redirect all request to index but not webroot directoryhtaccess 将所有请求重定向到索引而不是 webroot 目录
【发布时间】:2019-03-19 21:54:10
【问题描述】:

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

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

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    我找到了解决办法:

    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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-30
      • 2012-11-16
      相关资源
      最近更新 更多