URLの拡張子を非表示にする方法について

WEBデザイン

phpなどの動的なページを作れるようになってくると、拡張子が.phpなのが少し気になる。。。
phpで作ってるのがバレバレだし、そもそもphpがわからない人には、怪しいサイトに見えるらしい。

URLを綺麗にする方法について、今日は学んだので、以下に記録として残します。

※.htaccessで、phpをHTMLファイルでも動かせるようなワザもありますが、
エックスサーバーなんかだと、負荷がかかるとかどうたらこうたら。(ちゃんと読め)→公式ドキュメント

私が扱うような小規模サイトでは考慮しなくても良い気はしますが、今回はこの技は使わないことにします。

①URLをディレクトリまでの指定にして、indexファイルを読み込ませる

ファイル階層

上記のようにすべてフォルダ作成でindexファイルだと、URLが綺麗に見えます。
ただし、リンクでファイル名まで記述してしまうと、URLバーにも拡張子込みのファイル名になってしまうので、aタグは”./ディレクトリ名/”までの指定とします。

デメリットは、ページ数が多いと現実的ではないかも。

でもとても簡単ですよね!

②.htaccessの設定で、拡張子を書き換える

.htaccessの設定で、表示されるURLから拡張子を消せることがわかりました。
設定は以下の通りです。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


実際にやってみましたが、https://xxx.testというURLにアクセスして、https://xxx.test.phpのページを表示させることができました。

しかしながら一つ注意したいのが、拡張子込みのリンクを指定しまうと、アドレスバーに表示されるURLは拡張子込みのものとなります。
https://xxx.test.phpにアクセスすると、当然アドレスバーにはhttps://xxx.test.phpと表示されます。
何を言いたいのか。。日本語ってむずかしい。。

これが使えるととても便利だと思った理由は、拡張子が変わっても同じURLでアクセスできるという点です。
HPのリニューアルの案件で、htmlをphp化したいな~と思うことが多々あります。
googleが.html込みでインデックスしている場合リンク切れとなってしまうので、オリジナル404やリダイレクト設定が必要となると思うのですが、上記策を施しておくことで、phpやPythonなんかに変えてもちゃちゃっと問題ないのね?!「え、すごい」と感動したからです。

すこしWEB制作が分かってくると、構造やURLなどに目がいきまして。。。
あこがれるようなWEBサイトには拡張子がないことが多く、どういう仕組みなんだろうと調べてみた結果を本記事に備忘録として残します。

以上です!


コメント

タイトルとURLをコピーしました