0

この .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 ファイルのコードを手伝ってくれる人はいますか? ありがとうございます。

4

1 に答える 1

1

Apache Web サーバーによって追加された末尾のスラッシュでこれを読む必要があり ますhttp://httpd.apache.org/docs/current/mod/mod_dir.html

于 2012-07-14T12:12:26.323 に答える