web-dev-qa-db-ja.com

PHPファイル拡張子のないクリーンURL

URLをきれいにしたい、例えば:

http://sample.com/about-meの代わりにhttp://sample.com/about-me.php

これは私のコードです:

    RewriteEngine On 
    RewriteBase / 
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^ %{REQUEST_URI}.php

ただし、http://sample.com/about-me.phpには引き続きアクセスできます。

どうすればhttp://sample.com/about-meを持つことができるので、http://sample.com/about-me.phpは永続的にリダイレクトされますか?

正規化に必要なURLは1つだけなので、この手法はSEOに適していると思います。両方にアクセスできる2つのURLを使用する場合、SEOには適していないと思い、検索エンジンを混乱させる可能性があります。

4
Lena Queen

クリーンURL を使用する理由は次のとおりです。

  • これにより、ユーザーが検索エンジンの結果やウェブサイト上のリンクをクリックして送信先を特定しやすくなります。

  • ファイル名やクエリパラメータよりも、検索エンジンやWebサイトのリンクが関心のあるコンテンツにより関連しているように見えるため、ユーザーはそれらをクリックする傾向が強くなります。

  • これにより、検索エンジンが複雑なURLを理解しやすくなります(たとえば、多くのパラメーターが含まれている場合)。

複数のURLが同じリソースを指すことは完全に問題ありません。ただし、ページに 標準URL を追加して、検索エンジンにインデックスを作成する優先URLを知らせるようにします。または、URLの1つを robots.txt ファイルでインデックス作成から除外するようにリクエストできます。

ほとんどのユーザーはおそらく次のような単純なURLを理解できますし、検索エンジンも理解できるので、それをクリーンなURLに変換することの利点はあまりないでしょう。

http://sample.com/about-me.php

ただし、URLのPHP拡張機能を引き続き削除する場合は、.htaccessファイルでこれを使用してみてください。

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