🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
リダイレクト

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

.htaccess

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

Q&A

2回答

821閲覧

.htaccessでのPC↔︎SPの振り分けで、PCのリダイレクトが効かない

退会済みユーザー

退会済みユーザー

総合スコア0

リダイレクト

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

.htaccess

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

0グッド

0クリップ

投稿2019/10/15 02:40

実現したいこと

.htaccessでのPC・SPのリダイレクト

①スマホで「http://www.aaa.com/」にアクセスしたら「http://www.aaa.com/sp/」にリダイレクト
②PCで「http://www.aaa.com/sp/」にアクセスしたら「http://www.aaa.com/」にリダイレクト

発生している問題

上記②のリダイレクトが効かないので、どうすれば良いのか困っています
(①は問題なくリダイレクトできています。)

該当のソースコード

RewriteEngine on RewriteBase / RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.*Mobile|Windows.\ Phone) RewriteCond %{REQUEST_URI} !(^/img/) RewriteCond %{REQUEST_URI} !.css$ RewriteCond %{REQUEST_URI} !.js$ RewriteRule ^(.*)$ sp/$1 [R=301,L] RewriteCond %{REQUEST_URI} /sp/ RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.*Mobile|Windows.\ Phone) RewriteCond %{REQUEST_URI} !(^/img/) RewriteCond %{REQUEST_URI} !.css$ RewriteCond %{REQUEST_URI} !.js$ RewriteRule ^sp/(.*)$ $1 [R=301,L]

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

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

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

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

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

Y.H.

2019/10/16 02:38

質問放置のまま退会ですか。。。 まぁ、解決したんでしょうね。
guest

回答2

0

質問記載の.htaccessで期待通りの動作してますよ。
確認時はPCのブラウザのキャッシュをクリアして確認してますか?

# cat -n .htaccess 1 RewriteEngine on 2 RewriteBase / 3 4 RewriteCond %{REQUEST_URI} !/sp/ 5 RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android.*Mobile|Windows.\ Phone) 6 RewriteCond %{REQUEST_URI} !(^/img/) 7 RewriteCond %{REQUEST_URI} !.css$ 8 RewriteCond %{REQUEST_URI} !.js$ 9 RewriteRule ^(.*)$ sp/$1 [R=301,L] 10 11 RewriteCond %{REQUEST_URI} /sp/ 12 RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android.*Mobile|Windows.\ Phone) 13 RewriteCond %{REQUEST_URI} !(^/img/) 14 RewriteCond %{REQUEST_URI} !.css$ 15 RewriteCond %{REQUEST_URI} !.js$ 16 RewriteRule ^sp/(.*)$ $1 [R=301,L]
  • iPhoneで/へアクセス
root:/var/www/html# curl --head -H 'User-Agent: iPhone' http://localhost/ HTTP/1.1 301 Moved Permanently Date: Tue, 15 Oct 2019 02:56:00 GMT Server: Apache/2.4.29 (Ubuntu) Location: http://localhost/sp/ Content-Type: text/html; charset=iso-8859-1
  • iPhoneで/sp/へアクセス
root:/var/www/html# curl --head -H 'User-Agent: iPhone' http://localhost/sp/ HTTP/1.1 200 OK Date: Tue, 15 Oct 2019 02:56:28 GMT Server: Apache/2.4.29 (Ubuntu) Content-Type: text/html;charset=UTF-8
  • PCで/へアクセス
root:/var/www/html# curl --head -H 'User-Agent: hogege' http://localhost/ HTTP/1.1 200 OK Date: Tue, 15 Oct 2019 02:56:13 GMT Server: Apache/2.4.29 (Ubuntu) Last-Modified: Wed, 05 Jun 2019 07:30:22 GMT ETag: "2aa6-58a8e91fe5bcb" Accept-Ranges: bytes Content-Length: 10918 Vary: Accept-Encoding Content-Type: text/html
  • PCで/sp/へアクセス
root:/var/www/html# curl --head -H 'User-Agent: hogege' http://localhost/sp/ HTTP/1.1 301 Moved Permanently Date: Tue, 15 Oct 2019 02:56:20 GMT Server: Apache/2.4.29 (Ubuntu) Location: http://localhost/ Content-Type: text/html; charset=iso-8859-1

投稿2019/10/15 04:35

Y.H.

総合スコア7918

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

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

0

ルートにspだったらspフォルダにリダイレクトする処理を書いて
spフォルダにpcだったらルートにリダイレクトを書く処理を書いてはいけないんですか?

投稿2019/10/15 02:43

編集2019/10/15 02:44
kyoya0819

総合スコア10429

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問