2016-10-03 9 views
0

誰かが私を助けてくれるのか疑問に思っています。URLに末尾のスラッシュを追加した.htacessリダイレクトチェーンを防止する

次のバージョンのウェブページをすべて1つのステップで1つのステップに送信する.htaccessでリダイレクトルールを作成しようとしています。つまり、リダイレクトルールを順番に並べることはできません。私が持っている

具体的

http://example.com 
https://example.com 
http://www.example.com 
https://www.example.com 

問題は、すべての内部ページが最後にスラッシュを付加する必要があるということです。

現在、私はこれだけなように連鎖するリダイレクトで動作するように取得することができます。

https://www.example.com/example/ 

:最終的に行く前に

https://www.example.com/example 

https://example.com/example 

はその後に行きます私は開発者に何か一緒に何かを入れましたが、これはループを引き起こすように思われました:

// Don’t correct the path when it ends in a slash 
example.com^\/(.*)\/$ to https://www.example.com/$1 

// Add the slash if it doesn’t end with one 
example.com^\/(.*)(?<!\/)$ to https://www.example.com/$1/ 

私は開発者自身ではなく、誰かが正しい正規表現で私を助けてくれることを願っていましたか?本当に感謝しています。

答えて

0

あなたの.htaccessに使用することができます。

RewriteEngine on 

# Pages without . and ev./
RewriteCond %{HTTP_HOST} !^www\. [OR,NC] 
RewriteCond %{HTTPS} off 
RewriteRule ^([^.]+?)/?$ https://www.example.com/$1/ [R=301,L] 

# Others 
RewriteCond %{HTTP_HOST} !^www\. [OR,NC] 
RewriteCond %{HTTPS} off 
RewriteRule^https://www.example.com%{REQUEST_URI} [NE,R=301,L] 
関連する問題