.htaccessでURLの末尾のphpという拡張子が無い場合でもページを表示させる方法
「/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が無くてもページ表示できるようになる。
参考サイト
関連記事
-
-
フォルダにリンク制限をかける
imgというフォルダがあり、直接URLを叩いても 中身を見られないけど、同一サー ...
-
-
ブラウザがWebP対応の場合はそのまま表示し、非対応の場合はjpg/png画像を表示させる方法
ページ表示時にブラウザがWebP画像に対応している場合はそのまま表示し、非対応の ...
-
-
htaccessファイルでダイジェスト認証を行う方法
何かで調べ物をしていたときにdigest認証というものを見かけた。basic認証 ...
-
-
画像やPDF等のファイルへの直接アクセスは禁止し、PHP経由のみ表示やダウンロードを可能にする
ファイルアップローダーを作成する案件があり、アップロードしたファイルは「http ...
-
-
複数(PHP / metaタグ / htaccess)の方法で301リダイレクト
サイトのディレクトリやファイル名を大幅に変えるという案件があった。それ自体は問題 ...