CakePHPでURLの最後がスラッシュで終わらなかった時のエラーを対応する

技術関係

普通に作成した場合、URLがコントローラ名で終わるときに「”~Controller could not be found”」というエラーがでたので、以下のページの記述に従って対応する
CakePHP / mod_rewriteでスラッシュ補完|とんでもブログ ~ プログラマのWeb開発メモ (PHP, CSS, JavaScript)

.htaccessに以下のような記述を追加する。上記ページのものを一部変更

RewriteEngine On

    # ここにはweb_rootのパスをいれる
RewriteBase /
# 末尾のindex.htmlを取り除く
RewriteCond %{REQUEST_URI} /index.html?$
RewriteRule ^(.*)index.html?$ $1 [R=301,L]
# 末尾のindexもしくはindex/を取り除く
RewriteCond %{REQUEST_URI} /index/?$
RewriteRule ^(.*)index/?$ $1 [R=301,L]
# 末尾がスラッシュで終わっていない場合、
# かつファイル拡張子がついていない状態の場合は
# スラッシュ補完する
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.[^/\.]+$
RewriteRule ^(.*)$ $1/ [QSA,L]
# ここからは通常のルーティング
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1/ [QSA,L]
</IfModule>
タイトルとURLをコピーしました