2

私はワードプレスサイトに取り組んでいます。そして、SSLをインストールしました。正しくインストールされていますが、訪問者を特定のページのみの https URL にリダイレクトしたいと考えています。また、ブラウザが他のページに http を使用するように強制したいと考えています。

これは .htaccess で実行できることを知っており、いくつかのことも試しました。しかし、必要に応じてこれを取得できません。私は .haccess 書き換えルールを扱う初心者であり、ガイドとなるドキュメントが見つかりません。

たとえば、ブラウザでこの 2 つの URL に https を使用するように強制する必要があります。 http://www.example.com/sells/payment/ http://www.example.com/customer/login/

他のすべての URL では、通常の http を強制的に使用します。どのようなルールを書く必要がありますか?

更新 1

また、www 以外の URL を www の URL にリダイレクトするルールもあり、これらのルールと競合する可能性があります。これは、すべての非 www url を www url にリダイレクトする方法です。

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

私が直面している問題は、https ルールを適用した後、間違った URL であるhttps://www.www.example.com/sells/payment/にリダイレクトされることです。

これを修正するためのアイデアはありますか?

4

3 に答える 3

3

mod_rewrite と .htaccess を有効にしてからhttpd.conf、このコードをディレクトリの.htaccess下に配置します。DOCUMENT_ROOT

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(sells/payment|customer/login)/ - [E=MY_URL:1]

RewriteCond %{HTTPS} off
RewriteCond %{ENV:MY_URL} 1
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

RewriteCond %{HTTPS} on
RewriteCond %{ENV:MY_URL} !=1
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

アップデート:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(sells/payment|customer/login)/ - [E=MY_URL:1]

RewriteCond %{HTTPS} off
RewriteCond %{ENV:MY_URL} 1
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]

RewriteCond %{HTTPS} on
RewriteCond %{ENV:MY_URL} !=1
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L]
于 2012-10-18T16:15:38.673 に答える
1

これは、自分と同様のユースケースがあるプロジェクト全体で一貫して使用してきたものです。

RewriteCond %{SERVER_PORT}s ^(443(s)|[0-9]+s)$
RewriteRule ^(.+)$ - [env=askapache:%2]

# redirect urls with index.html to folder
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.html\ HTTP/
RewriteRule ^(([^/]+/)*)index\.html$ http%{ENV:askapache}://%{HTTP_HOST}/$1 [R=301,L]

# change // to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)//(.*)\ HTTP/ [NC]
RewriteRule ^.*$ http%{ENV:askapache}://%{HTTP_HOST}/%1/%2 [R=301,L]

これは、私が解決策を見つけたサイトからの抜粋であるため、それを信用することはできません: Smart HTTP and HTTPS .htaccess Rewrite

于 2012-10-18T16:10:59.523 に答える
0

試したことはありませんが、cononcial URL と同じように処理できますか?

RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com/your-page
RewriteRule (.*) https://www.example.com/your-page [R=301,L]
于 2012-10-18T16:11:22.493 に答える