1

在我的基本目录中,我有很多文件夹。我想把这些文件夹放到一个子目录中。

domain.com/test/test.html

将具有文件结构:

domain.com/subdir/test/test.html

并且仍然在同一个网址:domain.com/test/

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

从此处复制的另一个答案可以做到这一点,但它也会停止对基本目录的其他请求。

我需要它来检查子目录中的文件夹名称匹配,以及它是否存在或不从基本目录提供服务。

4

1 回答 1

0

尝试这个:

RewriteEngine on

# these conditions are optional, they're to make sure you don't clobber a legit request
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# these conditions aren't optional, they check to see if the requested file/dir exists inside /subdir
RewriteCond %{DOCUMENT_ROOT}/subdir%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/subdir%{REQUEST_URI} -d

# rewrite
RewriteRule ^(.*)$ /subdir/$1 [L]
于 2012-09-28T07:37:43.310 回答