0

如果该文件夹中存在该文件,我想将所有对我网站的请求重定向到文件夹“站点”。

例如:如果我的网站包含文件 /foo/foo.html、/bar/bar.html 和 /site/site.html 我想要以下重定向:

/foo/foo.html -> /foo/foo.html
/bar/bar.html -> /bar/bar.html
/site/site.html -> /site/site.html
/site.html -> /site/site.html

我认为这样的事情应该可以解决问题:

Options +FollowSymLinks
RewriteEngine On
# Check if the requested path is not a real file or folder
RewriteCond %{DOCUMENT_ROOT}/site/%{REQUEST_URI} -f
# if not a real file/folder: myhost.com/blabla -> myhost.com/site/blabla
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/site/$1 [R=301,L]

但我在日志中收到这些错误:

[warn] RewriteCond: NoCase option for non-regex pattern '-f' is not supported and will be ignored.

知道有什么问题吗?我没有从谷歌那里得到太多关于这个错误的信息......

Ps:我使用的是 bluehost 网站,并且 mod_rewrite 处于活动状态。

4

1 回答 1

1

我认为这应该可以解决问题:

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*)$ /site/$1 [R=301,L]

如果您需要对 goto site.html 的所有未知请求,您应该使用:

RewriteRule ^(.*)$ /site/site.html [R=301,L]
于 2013-01-09T18:50:07.760 回答