̃Gg[͂ĂȃubN}[Nɒlj

apache :: wwwなしURLを、wwwありURLにリダイレクトさせる(URL正規化)



wwwなしURLを、wwwありURLにリダイレクトさせる

.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

上の逆

.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]


www 以外は、すべて www にリダイレクト

.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

test と www 以外は、すべて www にリダイレクト

.htaccess
RewriteEngine on
RewriteCond %{HTTP_HOST} !^test\.example\.com
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
  • 開発環境で test.example.com を利用するケースを想定。


サブドメイン無しは www にリダイレクト。それ以外は Forbidden を表示。

.htaccess
RewriteEngine on

# www.example.com: 何もしない
RewriteCond %{HTTP_HOST} ^www\.example\.com
RewriteRule ^.*$ - [L]

# example.com: www.example.com に 301リダイレクト
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

# 上記2パターン以外: forbidden を表示
RewriteRule ^.*$ - [F,L]
  • [F] : forbidden(403) マッチしたURLへのアクセスを禁止する(クライアントには”403 Forbidden”のレスポンスが返される)



server/apache/htaccess/normalize_url.txt