私のサイトの.htaccessファイルに少し問題があります。私はpage.htmlとpage/URLsの両方を接尾辞なしでページにリダイレクトしたいと思っています。私は.htmlを取り除くことができましたが、ページ/ URLを入力するときに、私が試したこと(Apache 2.4.18)に関係なく内部サーバーエラーが発生します。リダイレクト.htmlと末尾のスラッシュ
ここで(最後のスラッシュを削除しようとする試みのいずれかなし)フルの.htaccessコード
Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine on
RewriteBase/
RewriteCond %{HTTP_HOST} ^website\.com$ [NC]
RewriteRule ^(.*)$ http://www.website.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^.*/index.html
RewriteRule ^(.*)index.html$ http://www.website.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.+)$ $1.html [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*\.html\ HTTP/
RewriteRule ^(.*)\.html$ /$1 [R=301,L]
は、私は何をしたいことがちょうど.htmlのために働いていた最後の6行をコピーが、持っているのです代わりに後続のスラッシュで動作しますが、それをどうやって行うのか、より良い解決策があるかどうかはわかりません。どんなアドバイスも大歓迎です!
thickguruありがとう、これは動作するようです!以前は、同じまたは類似のコードを.htmlリダイレクトの下で試してみましたが、上に置くとすべてうまく動作しているようです。大変感謝しています! –
私は奇妙なことに、mydomain.com/page/を入力するとmydomain.com//pageにリダイレクトされ、次にmydomain.com/page/に入るとmydomain.com/pageにリダイレクトされ、毎回2つのスラッシュと1つのスラッシュバージョン。それは修正可能かどうか?両方の仕事が大事なことではありませんが、それをきれいに保つのはうれしいでしょう。 –
ちょっと@ L.Thane、それは変です...リライタルルに余分なスラッシュを入れてみることもできますが、それがうまくいくかどうかは分かりません。余分なスラッシュを取り除くはずのルールで私の答えを編集しました。 – Lag