2016-08-19 7 views
0

これは、現時点で、現在私が現在どのようにPCから携帯にURLをリダイレクトしているかを示しています。.htaccessモバイルとPCがクエリ文字列で正しくリダイレ​​クトされない

RewriteRule^http://m.example.com%{REQUEST_URI}? [R=301,L] 

上記のコードの問題は、カットすることですか?モバイルURLに

をリダイレクトするときにすべてのアウトクエリ文字列今http://www.example.com/bangkok/(もともとhttp://www.example.com/jobs-list-province.php?p_name=bangkok)から

http://m.example.com/bangkok/ 

にURLを書き換える場合、これは問題はありません。しかし、それは上の送信要求するURLに問題がありますクエリ文字列、例えば: http://www.example.com/keyword-search.php?s_keyword=analystttp://m.example.com/keyword-search.php?s_keyword=analyst

だから、このコード

を使用して問題を解決しようとした代わりに、時間の http://m.example.com/keyword-search.phpにリダイレクトされます
RewriteRule^http://m.example.com%{REQUEST_URI}? [QSA,R=301,L] 

またはこのコード

RewriteRule^http://m.example.com%{REQUEST_URI} [R=301,L] 

私は上記のコードを使用する場合、それはに行くに http://www.example.com/bangkok/をリダイレクトに問題があります。代わりにhttp://m.example.com/bangkok/?p_name=bangkokを。私は http://www.example.com/bangkok/http://m.example.com/bangkok/http://www.example.com/keyword-search.php?s_keyword=analystに行くように書き換えるにはどうすればよい

は、詳細は添付のhtaccessファイルを参照してくださいhttp://m.example.com/keyword-search.php?s_keyword=analyst

に行きます。ご協力ありがとうございました。

#Redirect to www location 
RewriteEngine on 
RewriteBase/
rewritecond %{http_host} ^example.com [nc] 
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc] 

rewriterule ^(bangkok)$ /jobs-list-province.php?p_name=$1 

# Check if mobile=1 is set and set cookie 'mobile' equal to 1 
     RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$) 
    RewriteRule^- [CO=mobile:1:%{HTTP_HOST}] 

# Check if mobile=0 is set and set cookie 'mobile' equal to 0 
    RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$) 
RewriteRule^- [CO=mobile:0:%{HTTP_HOST}] 

# cookie can't be set and read in the same request so check 
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$) 
    RewriteRule^- [S=1] 

    # Check if this looks like a mobile device 
    RewriteCond %{HTTP:x-wap-profile} !^$ [OR] 
    RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR] 
    RewriteCond %{HTTP:Profile}  !^$ 

# Check if we're not already on the mobile site 
    RewriteCond %{HTTP_HOST}   !^m\. 
    # Check to make sure we haven't set the cookie before 
    RewriteCond %{HTTP_COOKIE} !mobile=0(;|$) [NC]   

    RewriteRule^http://m.example.com%{REQUEST_URI}? [R=301,L] 
+1

.htaccessの最後にバンコクルールを入れますか? –

+0

私はそれを試みました。それは同じ結果を与える – Arvin

+0

OK、私はもう一度質問を読むことができます:)、より慎重にこの時間 –

答えて

0

は、次の2つのことを行う必要があります

それはへのクエリ文字列を防止しているので
  1. は(すでに試したどの)

    RewriteRule^http://m.example.com%{REQUEST_URI}? [QSA,R=301,L]

    から疑問符を削除することです変わらずに通過する。

  2. 移動し、このルール:下へ

    rewriterule ^(bangkok)$ /jobs-list-province.php?p_name=$1

    、あなたはあなたのルールが混在したくないので。最初にモバイルサイトにリダイレクトしてから/bangkok書き換えを確認してください

関連する問題