私はクライアント用に2つのサイトを持っています。 1つはモバイルサイトで、もう1つは通常のサイトです。これらは両方とも別個のURLを持っています。htaccessは、クッキーを使って複数のドメインにリダイレクトし、すべてを記憶します。
.htaccessを使って私は既にそれを稼働させているので、あなたがモバイルに入ったら、モバイルサイトにリダイレクトされます。私が今したいのは、モバイルサイトにリンクを張って、ユーザーを通常のサイトに戻すことです。この設定は、クッキーが設定されていることによって記憶されます。私はモバイルサイトのためにクッキーを設定することができますが、そのは、通常のサイトにリダイレクトするとき、それはクロスドメインのためにそのクッキーを参照し、右リダイレクトカント
し、問題がでてくるのthats ...
モバイルサイトに戻る
私は賢明になり、ドメインに依存して動的にCookieの配置を行い、通常のサイトにリダイレクトするときは、Cookieを設定してリダイレクトしないようにします。
ここに、私が取り組んでいるmod_rewriteコードがあります。誰かが私が間違って行ってきたところを指摘したり、これはことも可能である場合、それは壮大な
# Write cookie if redirected
RewriteCond %{QUERY_STRING} (^|&)mredir=0(&|$)
RewriteRule^- [CO=mredir:0:%{HTTP_HOST}]
# redirect if mobile device && !mredir
RewriteCond %{HTTP_HOST} ^normalURL.com$
RewriteCond %{HTTP_COOKIE} !mredir=0
RewriteCond %{QUERY_STRING} !(^|&)mredir=0(&|$)
RewriteCond %{REQUEST_URI} !^/mobile/
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ http://mobileURL.com/ [R=302,QSA,L]
# point at mobile site IF !mredir
RewriteCond %{HTTP_HOST} ^mobileURL.com$
RewriteCond %{HTTP_COOKIE} !mredir=0
RewriteCond %{QUERY_STRING} !(^|&)mredir=0(&|$)
RewriteCond %{REQUEST_URI} !^/mobile/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/
RewriteRule ^(.*)$ mobile/$1 [L,QSA]
# IF mredir, redirect normal site
RewriteCond %{HTTP_HOST} ^mobileURL.com$
RewriteCond %{HTTP_COOKIE} mredir=0 [OR]
RewriteCond %{QUERY_STRING} (^|&)mredir=0(&|$)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d [OR]
RewriteCond %{REQUEST_URI} ^/
RewriteRule ^(.*)$ http://normalURL.com?mredir=0 [L,QSA]
# point at normal site
RewriteCond %{HTTP_HOST} ^normalURL.com$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
私はあなたの頭脳を.htaccess/mod_rewriteで叩くのではなく、PHP側から理解する方が良いと思うと思います。 –
モバイルサイトとデスクトップサイトで全く異なるドメインを使用していますか? 'mobile.mysite.com'や' www.mysite.com'のようなサブドメインだけでなく、 – Seybsen
ええ、その2つの別々のURL:mysite.mobiとmysite.com。クロスドメインのクッキーの読み取りルールのため、私がやろうとしていたことをする方法がないので、ユーザーがフルバージョンを要求してリダイレクトを行うと、上記のスクリプトを変更してモバイルサイトにCookieを設定しました。 –