.htaccess RewriteRule 不适用于根目录 '/'

.htaccess RewriteRule 不适用于根目录 '/'

我正在努力使这个 .htaccess 重写正常工作:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdir/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) old/$1 [L]
</IfModule>

我有一个这样的目录结构:

/subdir/
    .htaccess
    /old/
    /wp/

我希望所有请求http://myserver.com/subdir/改写为http://myserver.com/subdir/old/,但不包括指向 /wp/ 目录的那些。当指定文件或目录时,上面的 .htaccess 可以正常工作(例如http://myserver.com/subdir/index.html),但是当只有 /subdir/ 存在时,它会给出 403 响应(我假设 403 是因为我已禁用目录列表)。

非常感谢任何能为我指明正确方向的人。

答案1

尽管我不知道具体原因,但这似乎确实起了作用!

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdir/
RewriteCond $1 !^old/(.*)
RewriteCond $1 !^wp/(.*)
RewriteRule ^(.*)$ old/$1 [L]
</IfModule>

相关内容