次のようにして、サイトの「モバイル」バージョンにリダイレクトしようとしています。
RewriteCond %{HTTP_USER_AGENT} "ipad|iphone|ipod" [NC]
RewriteCond %{HTTP_COOKIE} !^.*mobile.*$ [NC]
RewriteRule ^$ /?m=t [L,R=302,co=mobile:true:.domain.com]
RewriteCond %{HTTP_USER_AGENT} "ipad|iphone|ipod" [NC]
RewriteCond %{HTTP_COOKIE} ^.*mobile=true.*$ [NC]
RewriteCond %{QUERY_STRING} !(^|&)m=t(&|$) [NC]
RewriteRule ^$ /?m=t [L,R=302,co=mobile:true:.domain.com,QSA]
これでルートに対して機能します。しかし、サイトは書き換えに大きく依存しているため、変更すると
RewriteRule ^$ /?m=t [L,R=302,co=mobile:true:.domain.com,QSA]
に
RewriteRule ^(.*)$ /$1?m=t [L,R=302,co=mobile:true:.domain.com,QSA]
正しいリダイレクトが得られますが、以前の書き換えはありません。
したがって、以前に書き直したとしたら、それは
RewriteRule ^product/shimano$ /index.php?product_cat=shimano [L]
変更された行により、/product/shimano?m=t の代わりに /index.php?m=t&product_cat=shimano が返されます。
私は何が欠けていますか?私はしばらくの間、これを理解しようとしてきました。