0

以下のようなURLがあります。

http://example.com/listing?listingid=237508&2000

私が望むのは、サイトのモバイル版にリダイレクトすることです。

http://example.com/mobile-listing?listingid=237508&2000

問題は、それがexample.com/listingの場合、 example.com/mobile-listingにリダイレクトする必要があることです。example.com/eventの場合は、 example.com /mobile-event などにリダイレクトする必要があります。どうすればいいですか?URL パラメーターまたは getvalue に基づくモバイル バージョンへのリダイレクトに関する質問を見てきました。しかし、この方法ではありません。どんな助けでも大歓迎です。ありがとう。

4

3 に答える 3

1

役立つかもしれない ulrich palhaからの simuluar 回答を見つけました。root の .htaccess ファイルの質問 ID 9113747 で、これを試すことができます。

RewriteEngine on
RewriteBase /

RewriteCond %{QUERY_STRING} (^|&)listingid= [NC] 
RewriteRule ^ mobile-listing [L,R=301]

これが役立つことを願っています。あなたは少し変わるかもしれませんが、これは解決策への正しい方向を指しているはずです.

于 2013-06-25T06:58:26.327 に答える
1

RewriteRuleディレクティブとフラグQSAを使用する必要がありますPT

<VirtualHost *:80>
    RewriteEngine on
    RewriteRule ^/listing$ /mobile-listing [PT,QSA] 
    …
</VirtualHost>

フラグ

Alias や Redirect など、他の URI からファイル名へのトランスレータを処理するために、結果の URI を URL マッピング エンジンに強制的に戻します。詳細 ...

元のリクエスト URL からの任意のクエリ文字列を、rewrite target.details で作成された任意のクエリ文字列に追加します。

詳しくは

Redirecting and Remapping with mod_rewriteでさらに多くのシナリオを見つけることができます。

于 2013-06-25T07:05:20.423 に答える
0

Without any sort of condition for what is mobile or what isn't, and you always redirect, then the rule would look something like this:

RewriteCond %{REQUEST_URI} !^/mobile-
RewriteRule ^([^/]+)$ /mobile-$1 [L,R]

The query string will automatically get appended. Change the R to R=301 if you want to permanently redirect.

于 2013-06-25T06:59:51.800 に答える