2013-03-10

[.htaccess] PHPの動的URLを静的URLに変換

以前に動的URLは検索エンジンが拾ってくれないと言われた時期もありましたが、
現在ではそれほど気にする必要はなくなりました。
とはいえ、URLをニュースに張り付けたり、SNSなどで使うときには
静的URLの方がシンプルでいいような気がします。

というわけで、PHPでの動的URLを.htaccessで静的URLに変換するやり方を調べました。
動的URLを静的に変換というよりは、静的URLにアクセスがあった場合に
動的URLを表示せてあげる、というのが原理になるようです。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9\-]+)$ news.php?c=$1
RewriteRule ^([0-9\-]+)/$ news.php?c=$1


上記は、20130301/ のようなURLにアクセスがあった場合に
news.php?c=20130301 で表示される内容を表示することになります。
サーバーの設定によって、最後のスラッシュがある場合、ない場合で
挙動が異なる場合があるので、最後のスラッシュありなしを書いています。

当然のことながら、静的URLにすることでファイルの階層が変わると、
画像やらCSS、Javascriptなどのパスがおかしくなってしまいますので、
絶対パスなどにしておくほうが無難かもしれません。


参考サイト
http://www.web-nouhau.com/archives/149

Comment:

Trackback URL: