質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

2回答

887閲覧

サイト全体を.htaccessでhttpsにリダイレクトした上で 特定の数ページだけhttpにリダイレクトしたい

masuda1

総合スコア5

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2020/02/26 12:58

編集2020/02/26 13:31

サイト全体を.htaccessでhttpsにリダイレクトした上で
特定の数ページだけhttpにリダイレクトされるようにしたいと思っています

リダイレクトしない特定のページは個別記事なのでカテゴリ全体ではなく
特定のページだけをhttpにリダイレクトされるようにしたいです

.htaccessを使ってネットにある色々なリダイレクトを試したのですが
リダイレクトがループしたりhttpにリダイレクトされなかったりとうまくいきません
どのように.htaccessに記述すれば上手くいくでしょうか?

RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] RewriteCond %{REQUEST_URI} ^/URL/ RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] order deny,allow

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

冗長な記述になりますが、ひとつひとつ設定すると以下のようになると思います。
パス category/URL/, category/URL2/ を正規表現でまとめれば、短くできそうです。

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^category/URL/ - [L] RewriteCond %{HTTPS} off RewriteRule ^category/URL2/ - [L] RewriteCond %{HTTPS} off RewriteRule ^.*$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302] RewriteCond %{HTTPS} on RewriteRule ^category/URL/ http://%{HTTP_HOST}%{REQUEST_URI} [R] RewriteCond %{HTTPS} on RewriteRule ^category/URL2/ http://%{HTTP_HOST}%{REQUEST_URI} [R]

投稿2020/02/27 13:25

TaichiYanagiya

総合スコア12146

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

無限ループはENDフラグで回避可能

投稿2020/02/27 00:28

KazuhiroHatano

総合スコア7804

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

masuda1

2020/02/27 05:10 編集

.htaccessに下記を追加しましたがURL1 URL2ともにhttpsへリダイレクトされてしまいます RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,END] RewriteCond %{REQUEST_URI} ^/category/URL/ [OR] RewriteCond %{REQUEST_URI} ^/category/URL2/ RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L] サイト全体をhttpsにした上でURL1 URL2だけhttpにリダイレクトするにはどうすれば良いでしょうか? よろしくおねがいします
KazuhiroHatano

2020/02/27 05:16

そっちにENDつけたらそりゃそうなるでしょうね、つけるなら後ろの方でしょう
masuda1

2020/02/27 07:09

解答ありがとうございます 下記のようにしたところURL1のにhttpにアクセスするとhttpsにリダイレクトされたままで URL2と、ほかの全ページにhttpでアクセスするとエラーが出ます .htaccessに書いた内容 RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301] RewriteCond %{REQUEST_URI} ^/category/URL/ [OR] RewriteCond %{REQUEST_URI} ^/category/URL2/ RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L,END] ブラウザに表示されるエラー内容 Moved Permanently The document has moved here. Additionally, a 301 Moved Permanently error was encountered while trying to use an ErrorDocument to handle the request.
KazuhiroHatano

2020/02/27 07:23

301でリダイレクトした先でまた元のURLにリダイレクトされたら 「引っ越したんじゃないんかい!」ってなりますわな リダイレクト先でまた元のURLに戻す可能性があるなら301リダイレクトはダメです
masuda1

2020/02/27 08:06

解答ありがとうございます 下記のようにしたところ URL1とURL2にhttpへアクセスするとhttpsにリダイレクトされ 他のページにhttpでアクセスするとブラウザの英文エラーがでます httpsで接続したときはすべてのページがhttpsで表示されます RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302] RewriteCond %{REQUEST_URI} ^/category/URL/ [OR] RewriteCond %{REQUEST_URI} ^/category/URL2/ RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L,END]
masuda1

2020/02/28 02:07 編集

回答ありがとうございます 試したところすべてのページがhttpsにリダイレクトされてしまうようです サーバーはWpxを使用していますがhttpsへの強制リダイレクト設定は行っていません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問