4

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

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

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

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

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

1 回答 1

3

尝试:

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]
于 2013-09-30T21:00:12.480 回答