2012-04-02 5 views
0

私は例えば、誰かの種類あれば、いくつかの情報のクエリを実行しようとしています:mod_rewriteのクエリ

http://domain.com/abracadabra 

誰かがこのアドレスに入力した場合、私はそれがに行きたいです

search.php?query=abracadabra 

私は、ルートからではなく、以前のクエリで書き直しました。
どのような助けが素晴らしいだろう!

検索対象の文字列が数値かどうかを確認して別のPHPページに送信できますか?たぶん新しい.htaccessを持つディレクトリにリンクしていますか?

答えて

2

ルートから実行することは、他の場所で行うことと変わりありません。以下は、リソース(ファイルシステムに存在しない)のすべての要求をsearch.phpにします。このルールは、任意のURLをキャプチャしますとあなたが持つかもしれ**既存のルールの下

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ search.php?query=$1 [L,QSA] 
+0

あなたがこれを載せていきたいと思いますしようとしている**(つまり、ファイルまたはフォルダではありません) – Lix

+0

興味があるだけ - LとQSAが何をすべきかフラグは?私は彼らがオリジナルに追加されたと思った?いずれにせよ、これはうまくいった!ありがとう:D また、PHPロジックを.htaccessに含める方法はありますか?たとえば、検索文字列が数値の場合、search.phpとは異なるPHPファイルが使用されます。 –

+0

'QSA'はクエリ文字列をリクエストに付加します。 'L'はそれが最後の規則であることを意味します。したがって、それが一致すれば後続の規則を無視します。 [RewriteRuleフラグの詳細について](http://httpd.apache.org/docs/current/rewrite/flags.html)。 PHPを.htaccessに含めることはできませんが、正規表現を使って数字だけを照合することはできます。 '^(。*)$'は現在マッチしている正規表現です。それを '^([\ d] +)$ 'に置き換えて数字にマッチさせます。 – kba