web-dev-qa-db-ja.com

ユーザーのアドレスバーのURLを変更しない.htaccessリダイレクト

私のウェブサイトは、ルートにアクセスしたときに/tempにリダイレクトします。URLアドレスバーに/tempを付けずに、ルートとして表示したいのです。

単純な.htaccess:があります

Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^$ /temp [L]

アドレスバーにwww.example.comではなくwww.example.com/tempを表示するにはどうすればよいですか?

また、ネットワークパネルを見ると、ステータスコードが301であることがわかります。これはredirect 301と同等ですか?

1
Wen Shenk

RewriteRule ^$ /temp [L]

ファイルシステムのルートに物理ディレクトリtempがあり、RewriteRule置換の最後からスラッシュを省略している場合、mod_dirは追加によってリクエストを「修正」しようとします。スラッシュ。 301リダイレクトを発行することでこれを行います。 (その場合、おそらくそのディレクトリから適切なファイルを提供するためにDirectoryIndexに依存しています。)

これは、置換の最後にスラッシュを追加することで解決できるため、mod_dirはリダイレクトを発行してこれを試みません。例えば:

RewriteRule ^$ /temp/ [L]

ステータスコードが301であることに気付いたので、これはリダイレクト301と同等です

はい、それは301(永久)リダイレクトです。

1
MrWhite