如果该文件夹中存在该文件,我想将所有请求重定向到我的网站到'site'文件夹。
例如:如果我的网站包含文件/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.
知道可能出现什么问题吗?我没有从谷歌这个错误得到太多...
P.s。:我使用的是bluehost网站,mod_rewrite处于活动状态。
答案 0 :(得分:1)
我认为这应该可以解决问题:
RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteRule ^(.*)$ /site/$1 [R=301,L]
如果您需要所有未知请求转到site.html,您应该使用:
RewriteRule ^(.*)$ /site/site.html [R=301,L]