短い静的URLにする方法
商品詳細ページとカテゴリーリスト表示の2つを長い動的URLから
静的URLにする方法。SEO的にはすでにどっちでもいい状況だが、
URLのシンプルさ、キレイさ、わかりやすさ、長さなどの考慮。
手順1. .htaccessをアップロード
.htaccessファイルに下記のように記載して第一階層にアップ。
RewriteRule detail([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/detail.php?product_id=$1 [L]
RewriteRule list([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/list.php?category_id=$1 [L]
オレンジの部分は、サイトパス(フルパス)で設置のサーバーに
合った設定にする。把握としてはサイト内リンクを静的にして、
静的URLにアクセスした時にmod_rewriteでサイトパスのファイルに
アクセスを置き換えてその内容を短い静的URLで表示するという構造。
手順2. 管理画面からリンクパス変更
管理ページ > システム設定 > パラメータ設定
DETAIL_P_HTML欄
URL_DIR . “products/detail”
LIST_C_HTML欄 ←※LIST_P_HTML欄ではないので要注意
URL_DIR . “products/list”
手順3. テンプレートファイルのリンクパス変更
detail(商品詳細)は.tplファイル変更箇所なし。
list(カテゴリー表示)はテンプレートの変更が必要で
【bloc/category.tplファイル】
list.php?category_id=
↓
list
【detail.tpl ファイル】
list.php?category_id=
↓
list
の2カ所を置き換える。
以上。
最初は、detail/3 とかスラッシュの入るように公式本にも
あったので、そうやったが商品ページの【新規コメントを書き込む】が
Not Foundになって開いたので何が原因と思ったら、
http://●●●.jp/products/review.php?product_id=3
が正しいのに
http://●●●.jp/products/detail/review.php?product_id=3
と階層がズレたのでdetail3 list2 などのURLで終わるようにした。
余談だが、個人的な好みで.htaccessはピンク色のようにしてある。
RewriteRule ^products/detail([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/detail.php?product_id=$1 [L]
RewriteRule ^products/list([0-9]+)\/? /home/▲▲▲/△△△/public_html/products/list.php?category_id=$1 [L]