2012-03-19 11 views
0
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC] 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 

だから私はhtaccessファイルの末尾にスラッシュの問題を処理するためにこれを持っています。 URLに後続のスラッシュを追加するたびにリダイレクトされます。htaccessでディレクトリをスキップ

ここで問題となるのは、末尾にスラッシュが必要な場所または壊れている場所の1つのディレクトリです。どのように私はこのルールにhttp://www.example.com/com/のようなディレクトリの例外を追加します。..

答えて

0

アプローチを理解することが最も簡単で、追加の条件を使用することです:

RewriteCond $1   !=com 
RewriteCond %{HTTP_HOST} ^(www.)?example\.com$ [NC] 
RewriteRule ^(.+)/$ http://%{HTTP_HOST}/$1 [R=301,L] 

実行の順序がrule.regexpあるので、これは動作します、cond1、cond2、rule.substitution。したがって$ 1変数は(新しい)cond1に利用可能です。正規表現では、否定アサーションを使用することもできます。

なお、httpの[R = 301]の場合はhttp://%{HTTP_HOST}/とする。なぜ他のホストエイリアスのために/を削除したくないのですか?

関連する問題