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

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

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

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

Q&A

解決済

3回答

1632閲覧

htaccess で、端末により、切り替える方法

Noripyon

総合スコア10

.htaccess

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

0グッド

0クリップ

投稿2021/04/25 18:51

編集2021/04/26 07:56

.htaccess についての質問です。

ここに、とても私的なサイトの URL を掲載するのは不適切と思い、存在しない仮の URL (https://example.com/) で望みを書きます。
必要とあれば、URL を書きます。.htaccess の内容もここに記載して良いのかわかりませんのですが、これも必要とあれば追記します。

(望み)

PC のアドレスは、
https://example.com/main.htm

携帯 (スマホ・タブレットなど) のアドレスは、
https://example.com/main_new.htm

といった切り分けは、どのように .htaccess を記述したらよいのでしょうか ?
既に .htaccess を利用中です。

google 検索で調べてみると、どこも "sp" ディレクトリを用意して、
携帯端末では "sp" を参照という、
https://example.com/ と → https://example.com/sp/ という表示の切り分けを解説しています。
これでは望みの動作と違いますので、

サイトにアクセスしたとき、
https://example.com/main.htmhttps://example.com/main_new.htm を切り替える方法は無いのでしょうか ?
同じディレクトリ (root) に置いた 2つの html を端末によって、切り替えるだけです。

main.htm と main_new.htm の以外のページは、PC にも携帯端末にもすでにレスポンシブ化して対応しています。
どうしても、この TOP ページ (main.htm と main_new.htm) だけは TOP ページの情報量の問題で切り分けたいのです。
(PC版は情報量が多くてスクロールが発生、携帯版は 1画面に収まる)

操作による表示をたどると、
PC :
サイトにアクセス → main.htm → そのページ内のコンテンツへ移動 (携帯と同じ) → 戻ると (相対 URL と JavaScript back 共に) → また main.htm
携帯 : サイトにアクセス → main_new.htm → そのページ内のコンテンツへ移動 (PC と同じ) → 戻ると (相対 URL と JavaScript back 共に) → また main_new.htm

要は、index.htm → (リダイレクト) → "main.htm と main_new.htm" という 2つの TOP ページだけを、端末の種類によって切り替えたいのです。

こんなことは解説されているサイトが見当たらないので、実現できるのでしょうか… ?
私が詳しく理解できていないからと思っています。よろしくお願いします。

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

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

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

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

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

ockeghem

2021/04/25 23:25

こういう目的「とても私的なサイトの URL を掲載するのは不適切」には例示用のドメイン名が定められています。example.com example.net example.jp などを使えばよいと思います。
Noripyon

2021/04/26 03:15

example.com などがあるのですね ^ ^;; 例示用が定められていたのは、今回初耳でした。大変失礼しました。 今後、注意します。
guest

回答3

0

ベストアンサー

出来ます。

「A」というURLにアクセスした場合、端末が「B」なら「C」というURLにリダイレクトする

もしくは、

「A」というURLにアクセスした場合、端末が「B」ならURLはそのままで「C」というページを返す

どちらもできます。
他のページがPCとスマホで同一URLのようなので後者が良いでしょうね。

例えば、
https://example.com/main.htm」というURLにアクセスした場合、端末が「スマホ」ならURLはそのままで「https://example.com/main_new.htm」というページを返す
なら、

Apache

1RewriteEngine On 2RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC] 3RewriteRule main.htm$ /main_new.htm [L]

なお、URLの例示には実在する他人のドメインを使わず、example.com example.jp等の例示用ドメインexampleを使います。

投稿2021/04/25 23:36

otn

総合スコア84557

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

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

Noripyon

2021/04/26 03:11

ありがとうございます ! 望み通りの動作をするようになりました ! 大変うれしく思っています !
guest

0

携帯からmain.htmにアクセスされたらmain_new.htmに書き換えればよいのでは。

htaccess

1RewriteCond (条件) 2RewriteRule ^main.htm$ main_new.htm [L]

投稿2021/04/25 23:32

itagagaki

総合スコア8402

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

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

Noripyon

2021/04/26 03:13

(条件) の部分はどう書けばよいかは理解していました。 その真下の RewriteRule に今回どう書けばよいのかが、理解できずでした。
guest

0

こんにちは。教えていただき、解決しました !
.htaccess には現在、以下のように記載されています。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.xxx.yyy.ne.\jp)(:80)?
RewriteRule ^/(.*) http://xxx.yyy.ne.jp/$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^main.htm$ /main_new.htm [L]

Redirect permanent /index.htm http://xxx.yyy.ne.jp/main.htm

ErrorDocument 403 /error/error_403.htm
ErrorDocument 404 /error/error_404.htm
DirectoryIndex index.html index.htm .ht

AddType application/octet-stream .wmv .mpg .mp4 .zip

これで、望みの動作を実現できました !
助かりました ! 本当に、ありがとうございます !

投稿2021/04/26 03:32

Noripyon

総合スコア10

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問