0
如果該文件夾中存在該文件,我想將所有請求重定向到我的網站上的文件夾「site」。帶-f條件的RewriteCond錯誤
例如:如果我的網站包含的文件/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是活動的。
我想重定向去到該文件夾的網站,而不是專門網站/ site.html,所以第一個應該工作。 我得到了很多「[警告] RewriteCond:NoCase選項的非正則表達式模式'-f'不被支持,將被忽略。」並得到了一個類似於這樣的結果網址的重定向次數錯誤:http://mysite/site/site/site/site/site/site/site/site/site/site.html。我以爲L應該停止未來的重寫? 這就是爲什麼我在我的例子中做了相反的事情,在試圖重定向到文件之前測試文件site/site.html是否存在。 – Florian
問題來自Options + FollowSymLinks,它在我的服務器上不受支持...我使用SymLinksIfOwnerMatch來代替它,它可以與我的代碼一起工作,而您的代碼不帶循環。謝謝 ! – Florian