私が達成しようとしているのは、ページ上のすべてのURLをhttp://domain.com/page/
のように見せることです。ユーザーがhttp://domain.com/page
またはhttp://domain.com/page.php
と書くと、最初のURLにリダイレクトされます。いくつかのグーグル後、私はこのコードを発見し、それが作業に近いのですが、あなたがあなたのリクエストで最後のスラッシュを省略する場合、URLはhttp://domain.com/Users/"..."/page/
のようなものになり、そのためには404 私の.htaccessファイルは、次のようになりますが返されます。htaccessで末尾にスラッシュを追加しようとすると、絶対パスになります
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{THE_REQUEST} ^GET\ /[^?\s]+\.php
RewriteRule (.*)\.php$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !(.*)/$
RewriteRule (.*)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .*[^/]$ $0/ [L,R=301]
私は追加ルールを追加しようとしていますが、実際にはこれを取得せず、回答を見つけることができませんでした。
まあ、それも私を助けた! –
あなたの助けてくれてありがとう、アンドリュー!それは非常にきれいに見え、私はロジックに従っていますが、これは実際にはファイル拡張子や末尾のスラッシュを使用するときに正しいファイルにアクセスします。拡張子は削除されず、後続のスラッシュも追加されません。末尾にスラッシュを使用しない場合、404が返されます。 – Fredrik
@Fredrik URLの*拡張子を削除しますか?もしそうなら、あなたは内部的に.phpを追加しようとしていますか?たとえば、http://www.example.com/something.htmlでブラウザをhttp://www.example.com/something/にリダイレクトし、内部でsomething.phpを使用してリクエストを処理しますか? – Andrew