【问题标题】:Transparent RewriteRule does not apply to folders透明 RewriteRule 不适用于文件夹
【发布时间】:2019-06-13 06:31:51
【问题描述】:

我在 .htaccess 文件中创建了一个 RewriteRule,以透明地将所有到特定域的请求重定向到子文件夹。

# mydomain.ch -> mydomain.ch/domainfolder
RewriteCond %{HTTP_HOST} ^mydomain.ch
RewriteCond %{REQUEST_URI} !domainfolder/
RewriteRule ^(.*)$ domainfolder/$1 [L,QSA] 

它非常适合访问文件。

例如当访问者尝试访问https://mydomain.ch/index.html 时,它会显示域文件夹中的 index.html 文件。访问者永远不会在地址栏中的 url 中看到 domainfolder 部分

当我尝试访问此网页上的文件夹(例如图片)时,它不会显示https://mydomain.ch/pictures/,而是将请求转换为https://mydomain.ch/domainfolder/pictures/

域文件夹不应对访问者可见。如何修改 RewriteRule 以对文件和文件夹透明地工作?

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    在 .htaccess 行“RewriteCond %{REQUEST_FILENAME} !-d”中添加规则以排除目录

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^mydomain.ch
    RewriteCond %{REQUEST_URI} !domainfolder/
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ domainfolder/$1 [L,QSA] 
    

    【讨论】:

    猜你喜欢
    • 2016-04-20
    • 1970-01-01
    • 1970-01-01
    • 2013-11-21
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2020-06-25
    相关资源
    最近更新 更多