mod_rewriteリダイレクトの問題があります。理解できません。
特定のドメインからのすべてのリクエストは、指定されたサブディレクトリに「サイレント」に書き換えられます。たとえばwww.mydomain.net/hello.html
、内のファイルを取得します/net/hello.html
。次の.htaccess (私のホスティングルートに配置)はこれを完全に実現します:
RewriteEngine on
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200 # <-- i will need this later. read to the end of the post.
RewriteRule .* - [L]
rewriteCond %{HTTP_HOST} ^www.mydomain.net$
rewriteCond %{REQUEST_URI} !^/net.*$
rewriteRule (.*) /net/$1 [L]
ただし、このディレクトリへの直接URLは、301を使用して、そのサブディレクトリのないURLに視覚的にリダイレクトする必要があります。たとえばwww.mydomain.net/net/hello.html
、にリダイレクトする必要がwww.mydomain.net/hello.html
あります(それでもファイルを取得します/net/hello.html
)。残念ながら、この(に配置された/net
)の.htaccesファイルは機能しません。
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule ^(.*) /$1 [R=301,L]
ルートの.htaccessファイルにブロックがあるにもかかわらず、無限のリダイレクトループが発生RewriteCond %{ENV:REDIRECT_STATUS} 200
します...では、何が問題になっていますか?
ところで、サイトは外部でホストされており、apache構成にアクセスできないため、mod_rewriteを使用する必要があります。
ポインタをありがとう。