【问题标题】:.htaccess - Rewrite multiple subdirectories to root.htaccess - 将多个子目录重写为根目录
【发布时间】:2013-09-30 20:55:52
【问题描述】:

我正在尝试将多个子目录重写到根目录。我的情况是,我有一个名为 blog/ 的文件夹,其中包含主站点文件夹,还有另一个名为 projects/ 的子目录,其中包含我希望从根:

www/
    blog/
        work/
        contact/
    projects/
        projectA/
        projectB/

我想要的是能够访问work/contact/projectA/projectB/例如,从根目录转到 example.com/projectAexample.com/projectB。如果两个文件夹都存在,我还希望 blog/ 目录优先。

目前,在我的 htaccess 中,我有这个,虽然它只是将所有内容重写为 blog/,从 URL 中删除它,但不影响 projects/ 文件夹。

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !(.*)site
RewriteRule ^(.*)$ site/$1 

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    试试:

    RewriteEngine on
    
    # first check if request is in /blog/
    RewriteCond %{DOCUMENT_ROOT}/blog%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/blog%{REQUEST_URI} -d
    RewriteRule ^(.*)$ /blog/$1 [L]
    
    # then check if request is in /projects/
    RewriteCond %{DOCUMENT_ROOT}/projects%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/projects%{REQUEST_URI} -d
    RewriteRule ^(.*)$ /projects/$1 [L]
    
    # otherwise, blindly rewrite to blog (or do nothing by removing this rule to allow a 404 not found)
    RewriteCond ${REQUEST_URI} !^/blog/
    RewriteRule ^(.*)$ /blog/$1 [L]
    

    【讨论】:

    • 谢谢!完全按预期工作!
    猜你喜欢
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 2017-05-13
    相关资源
    最近更新 更多