2012-05-06 10 views
0

私のプロジェクトにはさまざまなウェブサイトに関するデータがあるので、.htaccessを使ってURLを書き換えて、誰かがドット(。)を含む名前を自分のウェブサイトに渡すと、site.phpページが表示されます。ここに私のコードです:パラメータを書き換えURLに変更する

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9\_\-]+(\.)[a-zA-Z0-9\_\.\-]+)/?$ site.php?url=$1 
RewriteRule contact$ contact.php 

これはsite.phpにパラメータとしてサイト名を送信します。今私はもう一つのパラメータが渡されることを、それが一般的に渡されたようにしたいと思います。私はサイトがリアルタイムで更新されたデータを取得したい、私は?update=trueを渡したいので、データベースから取り出すのではなくインターネットからのデータを更新する。しかし、このようなパラメーターを渡す

http://www.mysite.com/anysite.com?update=true 

私は、既存の書き換えられたURLに追加パラメーターを渡すことはできますか?

答えて

2

フラグ[QSA]フラグ(「クエリ文字列の追加」)は、受信したクエリ文字列を書き換えられたURLに追加します。私は[L]フラグをベストプラクティスとして追加しました。最初のルールとのマッチを防ぎ、チェーン内の後で追加ルールを追加することもできます。

しかし
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9\_\-]+(\.)[a-zA-Z0-9\_\.\-]+)/?$ site.php?url=$1 [QSA,L] 
RewriteRule contact$ contact.php [QSA,L] 

、私は問題を誤解しているとあなたがupdate=trueを送信するために、ブラウザのために必要があるのではなく、単に書き換えルールに追加し、すべての要求にそれを強制しない場合:

RewriteRule ^([a-zA-Z0-9\_\-]+(\.)[a-zA-Z0-9\_\.\-]+)/?$ site.php?update=true&url=$1 [QSA,L] 
+1

FYI:QSAは「クエリ文字列の追加」を表し、 – Pete

関連する問題