0
私はhtaccesにいくつかのルールを持っていますが、すべてstackoverflowや他のサイトの助けを借りて学習します。しかし今、私はURLに後続のスラッシュを追加するルールを追加して(重複したコンテンツをふりかえるために)接尾辞を付けずに、問題が始まり、決して終わりのないループが発生します。 htaccessリダイレクトネストはトラブルの後続のスラッシュを必要とします
RewriteEngine on
RewriteBase/
# redirect urls without www. to url with www.
RewriteCond %{HTTP_HOST} ^domain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301]
# hide the suffix of urls
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.html\ HTTP/
RewriteRule (.*).html$ /$1 [R=301,L]
# start redirect everything to the subfolder
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.de [NC]
# except these folders:
RewriteCond %{REQUEST_URI} !^/downloads [NC]
RewriteCond %{REQUEST_URI} !^/cms [NC]
RewriteCond %{REQUEST_URI} !^/vorschau [NC]
RewriteCond %{REQUEST_URI} !^/domain/.*$
RewriteRule ^(.*)$ /subfolder/$1
# end redirect everything to the subfolder
は、今私は最後のスラッシュを追加するための
この新しいルールを追加したかったが、その後、これらのネストされたルールは一緒に動作しません: これらは私が私のhtaccesになったルールはあります!
したがって、www.domain.de/testには末尾にスラッシュが自動的に付きます。それ以外の方法では、末尾にスラッシュがあるURLはのないURLにリダイレクトする必要があります(どちらの方が良いか分かりません)。
# Add a trailing slash to URLs that have none
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.domain.de/$1/ [L,R=301]
誰でも手伝ってもらえますか? :) ありがとう!