URLが存在しない場合トップにリダイレクトする.htaccessの設定
検索すれば出てくるけど一応メモ。
RewriteEngine On
RewriteBase /RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
ファイルが存在しない場合
RewriteCond %{REQUEST_FILENAME} !-d
ディレクトリが存在しない場合
RewriteRule . /index.php [L]
/index.phpにリダイレクトして終了する。
ちなみにwordpressは次のような感じだった。
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
ファイルが存在するか、もしくは
RewriteCond %{REQUEST_FILENAME} -d
ディレクトリが存在すれば
置換をしないで終了 。参考('-' と呼ばれる特殊な置き換え文字列・・・)。
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
「wp-」が先頭についたファイルなら終了
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
phpファイルだったら終了
RewriteRule . index.php [L]
上記以外はindex.phpにリダイレクトして終了。
<関連記事>