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

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

新規登録して質問してみよう
ただいま回答率
85.48%
リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

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

Q&A

解決済

1回答

849閲覧

.htaccessでサブディレクトリ型URLからサブドメイン型URLへの301リダイレクト

退会済みユーザー

退会済みユーザー

総合スコア0

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

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

0グッド

0クリップ

投稿2017/12/21 06:04

###前提・実現したいこと
.htaccessで301リダイレクトをしたい

###発生している問題
.htaccessでサブディレクトリ型URLからサブドメイン型URLへの301リダイレクトを試みています。

転送元URLはhttp://www.example.com/hoge/(PCサイト用ページ)
この/hoge/の中に/s/というフォルダを作り、スマホ用のページにして、ユーザーエージェントで切り替えていました。

転送先URLはhttp://hoge.example.com/でレスポンシブサイトにしてあり、メディアクエリで切り替えをしています。

http://www.example.com/hoge/(PCサイト)または
http://www.example.com/hoge/s/(スマホサイト)
どちらからアクセスがあってもhttp://hoge.example.com/に転送するようにしたいです。

現状PCサイトは正常にhttp://hoge.example.com/に転送できているのですが、
スマホサイトはhttp://hoge.example.com/s/と最後に/s/がついてしまいうまくいっていません。

.htaccessは下記のように記述してあります。

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / # リクエストしたURLに下記がが含まれず RewriteCond %{REQUEST_URI} !/s/|/aaa/|bbb.html|ccc.html|ddd.html|eee.html # 下記端末からアクセスがあった時 RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC] # URL末尾に「?mode=pc」がついていない場合 RewriteCond %{QUERY_STRING} !mode=pc # 「/s/」以下へリダイレクト RewriteRule ^(.*)$ /s/$1 [R,L] RewriteRule ^hoge/(.*)$ http://hoge.example.com/$1 [R=301,L] </IfModule> ErrorDocument 404 /404.html

1行目から11行目までがサブディレクトリ型URLのスマホサイトへの切り替えへの設定で、12行目が301リダイレクトの設定になっています。

ディレクトリの名前とサブドメインの名前が同じなので、
.htaccessで301リダイレクト(サブディレクトリ→サブドメインにURL変更)
https://www.postit-web.com/2015/07/09/subdomain/を参考にして、
試みてみましたが、うまくいきませんでした。

宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

最後の RewriteRule を以下のように変更して、/s/ を消してしまえばいいのではないでしょうか。

RewriteRule ^hoge/(s/)?(.*)$ http://hoge.example.com/$2 [R=301,L] または RewriteRule ^hoge/(?:s/)?(.*)$ http://hoge.example.com/$1 [R=301,L]

投稿2017/12/21 15:50

TaichiYanagiya

総合スコア12146

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

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

退会済みユーザー

退会済みユーザー

2017/12/21 21:51

教えていただいた記述に、RewriteCond %{REQUEST_URI}に/hoge/を追加して、ちゃんとリダイレクトできるようになりました。 本当に有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問