【问题标题】:.htaccess makes subdirectory appear in URL.htaccess 使子目录出现在 URL 中
【发布时间】:2013-08-01 08:23:21
【问题描述】:

我一直在寻找这个,但是 我真的是 .htacces 的新手(我觉得这很糟糕) 我无法找到解决这个问题的方法。

我的服务器中有 root 文件夹,将默认域 URL 重定向到文件夹 "web"。我有另一个文件夹,比如说 subfold,在其中,我有另一个文件夹:mobile

我想要的是,如果有人键入 www.adomain.com,它会转到 root/subfold,而不显示 subfold。我是这样做的:

RewriteEngine on
Options +FollowSymLinks
RewriteBase /

RewriteCond %{HTTP_HOST} ^www\.adomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subfold/ [NC]
RewriteRule (.*)$ /subfold/$1 [L]

RewriteCond %{HTTP_HOST} www\.maindomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/web/ [NC]
RewriteRule (.*)$ /web/$1 [L]

但是,当我转到 www.adomain.com/mobile 时,它会显示在 URL www.adomain.com/subfold/mobile/

我的目标是,如果我转到 mobile 子文件夹,在 URL 中它应该显示 www.adomain.com/mobile

显然,我不想每次添加子文件夹时都编写重定向,这是可能的。

我该怎么做?

感谢您的宝贵时间和帮助!

【问题讨论】:

    标签: .htaccess redirect rewrite subdirectory


    【解决方案1】:

    您正在被重定向,因为您访问的目录没有尾部斜杠。默认情况下,mod_dir 模块将重定向浏览器并在有人尝试访问没有尾部斜杠的目录时添加尾部斜杠。这是因为索引目录存在信息泄露问题。您可以将其关闭:

    DirectorySlash Off
    

    即使存在 index.html 文件,也可能会列出目录的内容。或者添加一堆规则以确保尾部有斜线:

    RewriteEngine on
    Options +FollowSymLinks
    RewriteBase /
    
    # redirect for trailing slash:
    RewriteCond %{HTTP_HOST} ^www\.adomain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/subfold/ [NC]
    RewriteCond %{DOCUMENT_ROOT}/subfold%{REQUEST_URI} -d
    RewriteRule (.*[^/])$ /$1/ [L,R=301]
    
    RewriteCond %{HTTP_HOST} ^www\.adomain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/subfold/ [NC]
    RewriteRule (.*)$ /subfold/$1 [L]
    
    # redirect for trailing slash
    RewriteCond %{HTTP_HOST} www\.maindomain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/web/ [NC]
    RewriteCond %{DOCUMENT_ROOT}/web%{REQUEST_URI} -d
    RewriteRule (.*[^/])$ /$1/ [L,R=301]
    
    RewriteCond %{HTTP_HOST} www\.maindomain\.com$ [NC]
    RewriteCond %{REQUEST_URI} !^/web/ [NC]
    RewriteRule (.*)$ /web/$1 [L]
    

    【讨论】:

    • 非常感谢您的回答!正如你所说,是斜线弄乱了整个东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-17
    • 1970-01-01
    • 2014-01-27
    • 2012-06-25
    • 2013-08-18
    • 1970-01-01
    相关资源
    最近更新 更多