下記のようなコードにて、モバイル機器でアクセスした場合に、モバイル用のページに移動しようとしています。
しかしながら、スマホでアクセスしても切り替わってくれません。
試しに転送先を yahoo のような外部にしてみると正常に遷移します。
なぜ、外部URLに対してはOKで、サイト内URLはNGなのか…原因がわからずにいます。
転送元 https://example.com/wp/p/download/112233
転送先 https://example.com/wp/p/dw_mobile/112233
.htaccess設置場所 https://example.com/wp/.htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteRule ^p/download/(.*?)$ https://example.com/wp/p/dw_mobile/$1 [L] # RewriteRule ^p/download/(.*?)$ https://www.yahoo.co.jp/ [L] </IfModule>
このサイトはWordpresで稼働しています。
このコードに下にはWorpdress用の.htaccess記述があります。
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wp/ RewriteRule ^index.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L] </IfModule>
よろしくおねがいします。
【追記】
RewriteRule ^p/download/(.*?)$ https://example.com/wp/p/dw_mobile/$1 [L]
この部分の後半を少しずつ削除しながら試してみました。
https://example.com/wp/p/dw_mobile/$1 → 転送元のまま
example.com/wp/p/dw_mobile/$1 → 転送元のまま
/wp/p/dw_mobile/$1 → 転送元のまま
/p/dw_mobile/$1 → 404エラー
/dw_mobile/$1 → 404エラー
/$1 → 404エラー
【追記2】
いろいろ書き換えながらテストしている最中に偶然次のことに気が付きました。
転送先を https から http にするとページ移動しました。
変更前 https://example.com/wp/p/dw_mobile/$1
変更後 http://example.com/wp/p/dw_mobile/$1
.htaccess内にはhttpの場合、httpsの場合などの転送記載はいっさいありません。
なぜ、httpなら転送してくれるのか…さっぱりわかりません
利用しているサーバーは さくらサーバー です。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2019/10/28 04:08
2019/10/29 07:50 編集