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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Q&A

2回答

2910閲覧

特定のURL(パス)だけhttpsで通信する方法

Clementine

総合スコア157

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

0グッド

1クリップ

投稿2016/03/03 11:04

表記の件につきまして、質問いたします。

url

1http://example.com/ 2http://example.com/company 3http://example.com/about 4http://example.com/service 5http://example.com/access 6http://example.com/contact

上記URLは全てリンクで紐づいています。

このうち

url

1http://example.com/contact

の時だけ

url

1https://example.com/contact

のURLへ301リダイレクトされ、これ以外のURLの場合は
http://....のURLへ301リダイレクトさせる方法を探しております。

またサーバの環境により、.htaccessファイルのみで設定する必要が
ございますので、情報がありましたら、ご教授の程お願い致します。

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

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

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

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

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

guest

回答2

0

最初の回答者様の.htaccessを使う方法やPHPで操作する方法など色々あると思います。

.htaccessなら/contactフォルダ内で以下のように設定もできます。
自分のサイトで使っているポート番号を見てSSLの443以外の場合にリダイエクトする例です。

RewriteEngine On RewriteBase / RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^(.*)?$ https://example.com/contact/$1 [L,R]

同じことをPHPでHTMLファイルごとに設定するならcontactフォルダ以下のHTMLファイルの先頭に以下のように書いてもできます。

PHP

1<? 2 $port = $_SERVER["SERVER_PORT"]; 3 if( $port != "443" ) { 4 $h_url = "https://example.com/contact/"; 5 header("Location: $h_url"); 6 } 7?> 8 9```PHPが.htmlの拡張子で動作するように.htaccessに記載も必要になります。 10(サーバー環境やモジュール版・CGI版で設定が違います)

投稿2016/03/03 14:19

chinyato

総合スコア241

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

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

Clementine

2016/03/04 08:24

すみません。 このURLのサービスはwordpressになりますので、contactフォルダーはありません。 提供情報が不足しておりお手数お掛けしますが何卒ご教授の程お願い致します。
guest

0

mod_rewrite
は使えますでしょうか?
RewirteEngien on
とか記載して開始するものです。
使えればできるはずです。単純なHTTPSリダイレクトなら

RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

こんな感じかと。

と書きながら、すいません、あまり詳しくないというか、あまり徹底的に使ったことがないので、特定のフォルダ以下のみという具体的なサンプルは勘弁させていただくとして・・・(実は正規表現が苦手なのです)。

「mod_rewrite」「RewriteEngine」「RewriteRule」「RewriteCond」
などで検索すると、いろいろ出てきます。

あくまでも、mod_rewriteが使えればですが・・・。

あまり参考になりませんが、取り急ぎ。


追伸:

サーバ側での301リダイレクトに拘らないなら、
http://example.com/contact
の内容を、ずばり、

<html> <head> <meta http-equiv="refresh" content="0; URL=https://example.com/contact"/> </head> <body> </body> </html>

としてしまい、単純にHTMLのMETAタグでリダイレクトしてしまうのもありかと思います。

投稿2016/03/03 11:27

編集2016/03/03 11:32
ItoTomonori

総合スコア1283

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問