私はhtaccessリダイレクトに関するものは初めてですが、特別な方法でやりたいと思っています。推奨される方法がわからないので、これがまだ可能かどうかわかりません。
私の.htaccessファイルにこれがあります:
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]
これで、すべてのURLがHTTPSバージョンにリダイレクトされます-これは問題なく、必要です。しかし、今はいくつかの例外があります。
たとえば、これらのURLはHTTPSではなくHTTPである必要があります。
http://www.mywebsite.com/another/url/which/has/to/be/http
http://www.mywebsite.com/and_again?var=a
Htaccessでこれを解決することは可能ですか?可能であれば、参照リンクを送信するか、これを行う方法を説明できます。
編集
私は今このコードを持っています:
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^ https://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !\s/+(/commerce_Paypal/*)\s [NC]
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
目標はevery(!)のURLがHTTPSにリダイレクトされることです。ただし、先頭にcommerce_Paypalが含まれるURLは除きます。
例えば:
mydomain.com/commerce_Paypal <- http
mydomain.com/commerce_Paypal/smth/else <- http
mydomain.com/what/ever <- https
RewriteCond
を使用して、http->http
ルールに例外を追加できます。
RewriteEngine On
RewriteCond %{HTTP_Host} !^www\.
RewriteRule ^ https://www.%{HTTP_Host}%{REQUEST_URI} [L,R=301]
# force https:// for all except some selected URLs
RewriteCond %{HTTPS} off
RewriteCond %{THE_REQUEST} !/commerce_Paypal/ [NC]
RewriteRule ^ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
# force http:// for selected URLs
RewriteCond %{HTTPS} on
RewriteCond %{THE_REQUEST} /commerce_Paypal/ [NC]
RewriteRule ^ http://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{THE_REQUEST} !/commerce_Paypal/ [NC]
私のために働いた。私は運が悪かった多くの同様の条件の書き換えを試みました。