4

Google で末尾にスラッシュ .htaccessを追加した結果はかなりの数ありますが、私が見つけたすべての例では、次の例のようにドメイン名を使用する必要があります。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

私の問題は、ハードコードされたドメイン名がローカルの開発マシンで機能しないことです。mod_rewrite にドメイン名を明示的に伝えずに末尾のスラッシュを追加する方法はありますか?

4

2 に答える 2

7

ドメインを指定する必要はありません。絶対 URL パスを使用できます。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

これにより、URL スキームのチェックも廃止されます。

于 2009-11-03T17:06:16.800 に答える
3

これはうまくいくはずです:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !example.php
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [L,R=301]
于 2009-11-03T16:15:45.640 に答える