この .htaccess ファイルを作成して、リンクの最後のスラッシュを削除しようとしましたが、たとえば mydomain.com/fruit にアクセスすると、削除もリダイレクトも行われず、mydomain.com/fruit/ にリダイレクトされます。正反対です(果物ディレクトリは一例です。私はその中にたくさんあり、それぞれの中にindex.phpファイルまたは他の種類のファイルがあります。いくつかは空です)。私は 2 つの異なる方法 (いくつかの Web サイトからコピーしたもの) を試しましたが、誰も思い通りに動作しません。
コード 1:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule (.*) http://www.mydomain.com/$1 [L,R=301]
コード 2:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)$
RewriteRule (.*) http://www.mydomain.com/$1 [L,R=301]
私の実際のファイル(ただし、実際のドメインを使用):
RewriteEngine On
RewriteCond %{HTTP_HOST} ^mydomain.com
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/+$ http://www.mydomain.com/$1 [L,R=301]
Options All -Indexes
<Files .htaccess>
order allow,deny
deny from all
</Files>
この行にコメントすると: RewriteCond %{REQUEST_FILENAME} !-d Chrome でエラーが発生します: エラー 310 (net::ERR_TOO_MANY_REDIRECTS)。
.htaccess ファイルのコードを手伝ってくれる人はいますか? ありがとうございます。