.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が無くてもページ表示できるようになる。
参考サイト
関連記事
- 
					
													  
- 
					Apache2.4で[access_compat:error]AH01797エラーの対処方法Apacheのエラーログを追っていると「[access_compat:error ... 
- 
					
													  
- 
					CPIのレンタルサーバでRewriteEngineを使用する場合の注意点CPIのレンタルサーバで開発する案件があり、htaccessファイルを用いてRe ... 
- 
					
													  
- 
					特定ディレクトリ以下のBasic認証を無効化する方法Basic認証を設定しているサイトがあり、そちらを解除したかった。通常の場合だと ... 
- 
					
													  
- 
					日本語込みのURLをRewriteRuleで書き換える方法WordPressのパーマネントリンク的なことをhtaccessで実現したい。具 ... 
- 
					
													  
- 
					htaccessファイルにてVPS⇔レンタルサーバ間のリバースプロキシ設定を行う方法VPSの指定したディレクトリにアクセスした場合、レンタルサーバの指定したディレク ...