.htaccessを編集
- public/.htaccess
# Redirect Trailing Slashes If Not A Folder...
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_URI} (.+)/$
# RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.[^/\.]+$
RewriteRule .* %{REQUEST_URI}/ [R=301,L]
しかしこれだと登録・削除などのPOST処理も全てリダイレクトされてしまうので、
405 エラー(Method Not Allowed)
が発生して使い物にならず...
.htaccessにGETのみ対象とする条件を追加する
- public/.htaccessに、GETメソッドのみを対象とする条件を付け加える
# Redirect Trailing Slashes If Not A Folder...
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteCond %{REQUEST_URI} (.+)/$
# RewriteRule ^ %1 [L,R=301]
RewriteCond %{REQUEST_URI} !/$
RewriteCond %{REQUEST_URI} !\.[^/\.]+$
RewriteCond %{REQUEST_METHOD} =GET # 追記
RewriteRule .* %{REQUEST_URI}/ [R=301,L]
RewriteCond %{REQUEST_METHOD} =GET
上記を追加することで、GETアクセスの場合のみトレイリングスラッシュがつくようになりPOST処理で405エラーが発生しない
#Redirect Trailing Slashes If Not A Folder…
の下3行をコメントアウト