0

ファイルがこのフォルダーに存在する場合、自分のWebサイトへのすべての要求をフォルダー'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.

何が間違っている可能性があるか考えていますか?私はこのエラーについてグーグルから多くを得ませんでした...

追伸:私はbluehost Webサイトを使用しており、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 に答える