2012-02-13 30 views
1

.htaccessに問題があります。特にリダイレクトに問題があります。htaccess url疑問符で書き直し

私はこのURLを書き換えてみたかった:

http://www.domain.com/country 

http://www.domain.com/?mod=country 

私はすでにこの.htaccessコードを試みた:私は疑問符ずにそれに取り組んでみました

RewriteEngine on 
RewriteRule ^\?mod=(.*)$ $1 

をそれはうまく動作します。 私は疑問符をエスケープしましたが、これは特殊文字の一部ですが、それでも問題は解決できませんでした。

私は行方不明を教えていただけますか?直接ルールを書き換えるためにあなたの要件を翻訳

+0

あなたは '/国家 'に' /?mod = country'に行きたいですか? –

+0

'RewriteRule'はユーザーをリダイレクトするためのものではありません。 –

+1

他の方法はありませんか?訪問者が 'www.foo.com/country'と入力すると、内部的に'?mod = country'と見なされるべきですか? – Qtax

答えて

3

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^mod=(.*)$ 
RewriteRule ^$ %1 

しかし、のような、あなたはおそらく、より柔軟な何かをしたい:これらのルールは、ドメインのルートに適用されます

RewriteEngine On 
RewriteCond %{QUERY_STRING} (?:^|&)mod=([^&]+) 
RewriteRule /?(.*) %1/$1 [QSA] 

外部リダイレクトを実行する場合は、Rフラグを書き換えルールに追加します。

+0

最初のコード出力:http://www.domain.com/country_data?mod=country_data、私はそれをちょうど/ country_data 。ありがとう。 –

+0

後尾を削除するには?mod = country_data? –

+2

@jaysonaticクエリ文字列を削除するには '? 'を追加します。つまり、ルールを' RewriteRule^$%1?'に変更します。 –