URLをリダイレクト・リライトする場合の.htaccessの設定例
Post on:2008年3月26日
Roshan's Blogのエントリーから、URLをリダイレクト・リライトする場合の.htaccessの設定例を5つ紹介します。
5 useful url rewriting examples using .htaccess
「product.php?id=12」を「product-12.html」でアクセス
「product-12.html」を「product.php?id=12」にリライトします。
1 2 3 4 |
<textarea name="code" class="html" cols="60" rows="5"> RewriteEngine on RewriteRule ^product-([0-9]+).html$ product.php?id=$1 </textarea> |
「product.php?id=12」を「product/ipod-nano/12.html」でアクセス
「product/ipod-nano/12.html」を「product.php?12」にリライトします。
1 2 3 4 |
<textarea name="code" class="html" cols="60" rows="5"> RewriteEngine on RewriteRule ^product/([a-zA-Z0-9_-]+)/([0-9]+).html$ product.php?id=$2 </textarea> |
「www.test.com」を「test.com」でアクセス
「www無しのURL」を「www有りのURL」にリダイレクトします。
1 2 3 4 5 |
<textarea name="code" class="html" cols="60" rows="5"> RewriteEngine On RewriteCond %{HTTP_HOST} ^optimaxwebsolutions.com$ RewriteRule (.*) http://www.optimaxwebsolutions.com/$1 [R=301,L] </textarea> |
「test.com/user.php?username=xyz」を「test.com/xyz」でアクセス
「test.com/xyz」を「test.com/user.php?username=xyz」にリライトします。
1 2 3 4 5 |
<textarea name="code" class="html" cols="60" rows="5"> RewriteEngine On RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 </textarea> |
「test.com/new」を「test.com」でアクセス
「ルート直下のURL」を「サブフォルダ」にリダイレクトします。
例:test.com/new
1 2 3 4 5 6 7 |
<textarea name="code" class="html" cols="60" rows="5"> RewriteEngine On RewriteCond %{HTTP_HOST} ^test.com$ [OR] RewriteCond %{HTTP_HOST} ^www.test.com$ RewriteCond %{REQUEST_URI} !^/new/ RewriteRule (.*) /new/$1 </textarea> |
参考
検索エンジン対策としては、ページの移転や重複するページがある場合、301リダイレクトを使用するように推奨されています。
- 重複するコンテンツ
[Google] - サイトのURLを変えたので、検索結果のURLを修正したい
[Yahoo!]
sponsors