2010-11-29 7 views
0

これを解読しようとしています。コントローラ/controller/ads.phpにマッピングするための、しかし確かads.php REQUEST_URIQUERY_STRINGは(なしリダイレクト)同じままにする.htaccess特定のクエリ文字列をコントローラにマップするためのルールを書き換えます。

/any/segment/?zone=116&n-value=a128c471 

..

勿論、

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !((.*)\.(.*))$ 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ /$1/?%{QUERY_STRING} [NC,L,R=301] 

私は何かアドバイスをいただきありがとうございます。

+0

あなたは、なぜあなたはR = 301を入れている、 "何のリダイレクト" たくありません – shikhar

答えて

0
  1. URLは3番目の条件で失敗します。 mod_rewriteはクエリ文字列を無視します。 URLの最後にスラッシュが表示されます。

  2. 最後に(逐語的)クエリ文字列を手動で追加する必要はありません。

  3. 書き換えルールで使用する置換文字列を変更し、R=301フラグを削除する必要があります。サイトで使用されているURLによっては、書き換えたくないURLを除外するために、より具体的な左側の正規表現(または別の条件)が必要な場合があります。

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !((.*)\.(.*))$ 
    RewriteRule ^(.*)$ /controller/ads.php [NC,L] 
    
関連する問題