web-dev-qa-db-ja.com

Apacheリダイレクトの正規表現

.htaccessファイルでリダイレクトしたい(301):

From:http://www.example.com/photo<anything>
宛先:http://www.example.com/blog/

基本的に、/photoで始まるURLは、単一のURL /blog/にリダイレクトする必要があります。これの正規表現は何ですか?

1
Sam

私は見つけた:

RedirectMatch 301 ^/photo/ http://www.example.com/blog/

1
Sam

サーバーがmod_rewriteが有効になっているApacheの場合、これは機能します。

RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L]

そして、大文字または小文字が許容される場合、これを使用します:

RewriteEngine On
RewriteRule ^photo(.*)$ http://www.example.com/blog/ [R=301,L,NC]

リダイレクトのため、rfcドキュメント(rfc番号を忘れていました)がリダイレクトページのLocationヘッダーは完全な絶対URLである必要があるとかつて述べていたので、相対URLではなく完全な絶対URLを使用してリダイレクトすることをお勧めしますが、その後、別のrfcドキュメントでURLが相対的である可能性がありますが、すべてのWebブラウザーの互換性を高めたい場合は、すべてのリダイレクトに絶対URLを使用することをお勧めします。

1
Mike

正規表現さえ必要ありません。 Redirectディレクティブはそのケースを簡単に処理します:

redirect permanent /photo/ http://www.example.net/blog/
redirect permanent /photo http://www.example.net/blog

example.comサーバーの。htaccessファイル内。デフォルトでは、リダイレクトディレクティブはパスに追加されたもの(/photos/hello)を保存し、宛先(/blog/hello)に追加します。

0