RewriteEngine on
RewriteRule ^$ http://my-site.com/directory [R=301,L]
これにより、ルートページがにリダイレクトされます
http://my-site.com/directory/
(末尾のスラッシュに注意してください)。
URL を生成するときに .htaccess で末尾のスラッシュを省略するにはどうすればよいですか?
RewriteEngine on
RewriteRule ^$ http://my-site.com/directory [R=301,L]
これにより、ルートページがにリダイレクトされます
http://my-site.com/directory/
(末尾のスラッシュに注意してください)。
URL を生成するときに .htaccess で末尾のスラッシュを省略するにはどうすればよいですか?
これはdirectory
既存のディレクトリであるためです。これは書き換えられた URL ではありません。の代わりに別の単語を使用します。
RewriteEngine on
RewriteRule ^$ /mypath [R=301,L]
RewriteRule ^mypath$ /directory/ [L]
noupe.comからの引用:
サーバー上のファイルシステムは、書き換えられた URL よりも常に優先されます。たとえば、「services」という名前のディレクトリがあり、そのディレクトリ内に「design.html」というファイルがある場合、URL を「http://domain.com/services」にリダイレクトすることはできません。何が起こるかというと、Apache が「services」ディレクトリに入り、書き換えの指示が表示されないということです。
これを修正するには、ディレクトリの名前を変更するだけです (先頭または末尾にアンダースコアを追加するのが簡単な方法です)。
ボーナス:すべてのURLの末尾のスラッシュを削除するには:
RewriteEngine On
RewriteRule ^(.*)/$ $1 [R,301,L]