勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

.htaccessでURLの末尾のphpという拡張子が無い場合でもページを表示させる方法

  Apache サーバー

「/hoge/test.php」のようなディレクトリ・ファイル名の場合は「https://test.com/hoge/test.php」というURLになると思うが、これを「https://test.com/hoge/test」でもページ表示できるようにしたい。.htaccessでの設定方法をメモ。

 

ソースコード

RewriteEngine on
RewriteBase /hoge

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)/+$ ./$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

末尾のスラッシュを消す

RewriteRule ^(.*)/+$ ./$1 [R=301,L]

上記でURLの末尾にスラッシュがある場合はスラッシュ無しのURLにリダイレクトさせている。尚、リダイレクトの際に相対パスを使っているためRewriteBaseを設定する必要がある。

末尾のphp無しでもページ表示

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

上記でURLに.phpが無くてもページ表示できるようになる。

 

参考サイト

https://www.javadrive.jp/apache/htaccess/index9.html

 - Apache サーバー

  関連記事

htaccessファイルでダイジェスト認証を行う方法

何かで調べ物をしていたときにdigest認証というものを見かけた。basic認証 ...

apacheで指定した期間(日時)のアクセスログを抽出する方法

apacheのaccess_logとerror_logで特定日時内のログのみを確 ...

htaccessとhttpd.confの優先度

既に完成しているシステムを引き継ぐことがあり、そこのリライトルール設定を変更した ...

画像やPDF等のファイルへの直接アクセスは禁止し、PHP経由のみ表示やダウンロードを可能にする

ファイルアップローダーを作成する案件があり、アップロードしたファイルは「http ...

firebugで「CORS を有効にすると解決できます」と表示される際の対応方法

Aサーバーにjsとかcssとか画像とかを置いて、Bサーバーで呼び出す際にちゃんと ...