こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

-広告-

解決済みの質問

.htaccessでのリダイレクトと例外設定

お知恵をお貸しください。
.htaccessを使って
1)wwwありのURL(ttp://www.domain.com)で正規化したい。
2)PCサイトとスマホサイトを行き来したい。
3)CMSの管理画面がある1つのディレクトリ(admin)に関しては、どの端末からもアクセスしたい。
4)これは「出来れば」ですが、上記1~3をクッキーは使わずに実現したい。
と思っております。

色々と記述してみているのですが、PC⇔スマホの行き来は下記に記載しております「現在のhtaccess」の内容で可能なったのですが、スマホでCMSの管理画面(ttp://www.domain.com/admin/)にアクセスをすると、スマホサイト(ttp://www.domain.com/m/admin/???)の方に転送されるようで、404エラー Not Foundになってしまいます。
記述の順番などあると思ったりしたのですが、もうお手上げ状態になってしまい、質問させていただきました。

現在の構成は以下のようになっております。
ドメイン : domain.com
PCサイト : ttp://www.domain.com
スマホサイト : ttp://domain.com/m/
※スマホサイトはPCサイトと全く同じディレクトリ&ファイル構成にして「m/」配下に配置しています。
※PCサイトの各ページに「スマホサイトへ」というボタン、スマホサイトの各ページに「PCサイトへ」というボタンを配置し、それぞれをクリックすることで、今見ているページのPCページorスマホページへ遷移するようにしています。
CMS管理画面 : ttp://www.domain.com/admin/
※上記管理画面にはPCでもスマホでも端末問わずにアクセスしたい。

現在のhtaccessは以下のように記述しています。
※これはPC⇔スマホのページ遷移まで確認している記述で、WWWありでのURL正規化とadminに対しての例外処理は記述していません。

RewriteEngine on
RewriteCond %{REQUEST_URI} !/m/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteCond %{HTTP_REFERER} !ttp://www.domain.com/
RewriteRule ^(.*)$ m/$1 [R]
RewriteBase /
RewriteCond %{REQUEST_URI} /m/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android|Windows\ Phone)
RewriteCond %{HTTP_REFERER} !ttp://www.domain.com/
RewriteRule ^m/(.*)$ $1 [R]
RewriteBase /

条件が多く、現状説明も良く出来ていないと思いますが、何卒宜しくお願い致します。

投稿日時 - 2016-01-07 16:56:44

QNo.9107625

すぐに回答ほしいです

質問者が選んだベストアンサー

以下のようにすれば2と3は実現できると思います。(試していないので、お試しください。)
RewriteEngine on
RewriteCond %{REQUEST_URI} !/m/
RewriteCond %{REQUEST_URI} !/admin/
RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^/(.*)$ /m/$1 [R=301,L]

RewriteCond %{REQUEST_URI} /m/
RewriteCond %{HTTP_USER_AGENT} !(iPod|iPhone|Android|Windows\ Phone)
RewriteRule ^/m/(.*)$ /$1 [R=301,L]

1は以下のようにwwwのつかないバーチャルホストを作成し、そこでリダイレクトするのがわかりやすくていいと思います。
<VirtualHost *:80>
ServerName domain.com
Redirect / http://www.example.com/
</VirtualHost>

<VirtualHost *:80>
ServerName www. domain.com
</VirtualHost>

投稿日時 - 2016-01-08 21:33:27

お礼

ご連絡が遅れました。
回答いただき有難うございました。

投稿日時 - 2016-01-14 23:44:49

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(1)

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-