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

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

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

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1209閲覧

httpsのアクセスでRewriteにより書き換えられたページが表示されなくなった。

pro88

総合スコア17

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

SSL

SSL(Secure Sockets Layer)とは、暗号化されたプロトコルで、インターネット上での通信セキュリティを提供しています。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/09/05 14:02

編集2018/09/05 14:22

環境
さくらのVPS CentOS 6.10
Apache/2.2.15
PHP 5.4.45

お世話になります。
先日「https化で階層下でAliasが効かなくなった。」という質問をさせていただきまして
回答をいただきまして、結果的にその回答により解決したのですが
修正前Aliasが効かなくなった状態が以下
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.) https://example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^(.
) https://example.com/$1 [R=301,L]

修正後Aliasが効くようになった状態が以下
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^.$ https://example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} !^example.com$ [NC]
RewriteRule ^.
$ https://example.com%{REQUEST_URI} [R=301,L]

上記の記述で解決されてAliasが効くようになりました。
実際のパスは以下で
https://example.com/List/kantou/

Aliasが効いた状態のURLが以下で表示されるようになりました。
https://example.com/kantou/

ここまでが前回解決した状態なのですが、今回の問題が階層下で以下の Rewrite により書き換えられて表示されていたページが404で表示されなくなったのです。
RewriteRule ^/([0-9A-Za-z]+)/shop/([0-9A-Za-z]+)/$ /var/www/html/List/$1/shop/index.php?unique=$2 [L]
RewriteRule ^/([0-9A-Za-z]+)/shop/([0-9A-Za-z]+)$ /var/www/html/List/$1/shop/index.php?unique=$2 [L]

上記の Rewrite で以下の URL のページが表示されていたのですが404で表示されなくなってしまいました。
https://example.com/kantou/shop/n78de36u/

以前 http でのアクセスで上記の Rewrite の記述で表示されていたページが https のアクセスで表示されなくなってしまったのですが何が原因で表示されなくなったのでしょうか。
度重なる質問で大変お手数をおかけしますが宜しくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

/etc/httpd/conf.d/ssl.conf の <VirtualHost _default_:443> 内にも RewriteRule の設定をしてみてください。

投稿2018/09/05 15:22

TaichiYanagiya

総合スコア12146

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

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

pro88

2018/09/05 23:39

お世話になります。 ご回答いただきましてありがとうございます。 ここ数日間調べておりましたが、質問する前日にご指摘いただきました ssl.conf への直接の記述も試しておりましたが、上手く動作しておりませんでした。 ただTaichiYanagiyaさんの回答を受けて、再度 RewriteRule を記述しましたところ、404が返されていたページが、表示されるようになりました。 原因は、肝心な RewriteEngine On の記述が抜けていたからでした。TaichiYanagiyaさんの回答がなければ、解決に辿り着けずにおりました。 この度は、本当にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問