0

htaccessの言語パラメータを書き換える方法は?
URL の 2 番目の部分をサイトの言語として設定したいのですが
、htaccess コードを次のように記述しますが、$_GET を印刷すると、$_GET['language'] が見つからないのは
なぜですか?
ちなみに「?」で判断する方法は?または htaccess の「&」。私は 2 RewriteCond bellow を書きましたが、他に簡単な方法はありますか?

http://www.hello.com/en/test.html
or http://www.hello.com/test.html   //default language = en
=> 
http://www.hello.com/test.html?language=en

http://www.hello.com/fr/test.html
=> 
http://www.hello.com/test.html?language=fr

RewriteCond %{REQUEST_URI} ^\w{2}/.*\? [NC]
RewriteRule ^(.*)/(.*) $2&language=$1 [QSA,L]

RewriteCond %{REQUEST_URI} ^\w{2}/[^\?]* [NC]
RewriteRule ^(.*)/(.*) $2?language=$1 [QSA,L]
4

1 に答える 1

1

パラメータをキャプチャするか、存在しないパラメータを書き込むため、2 つの文字列が最も簡単な方法です。mod_rewriteシンプルになると、常に最良の方法とは限りません。これはで動作するはずQSAです。新しいクエリ文字列を宣言している限り、QSA はパラメーターを自動的に渡す必要があります。

#Check for files that do not contain the language string
RewriteCond %{REQUEST_URI} !^/[a-z]{2}/.*
RewriteRule ^(.*)$ $1?language=en [QSA,L]

#Capture the language string and present it as the variable
RewriteCond %{REQUEST_URI} ^/([a-z]{2})/(.*)
RewriteRule ^.* %2?language=%1 [QSA,L]
于 2013-05-30T03:54:42.323 に答える