2

私は htaccess リダイレクトに不慣れで、それがどのように機能するかについて問題を抱えています。それは、少し違うものが必要だからだと思います。

これ欲しい

http://localhost/webroot/type_enduro-cross-trial/brand_yamaha/

リダイレクトされる

http://localhost/webroot/search.php?type=enduro-cross&trial=brand_yamaha 

その値を製品のフィルターとして使用します。ただし、元の URL は 2 つのステップで生成されます。

例:

ユーザーはメイン ページ ( http://localhost/webroot) に移動し、タイプ別にフィルター処理する必要があるため、クリックするとフィルターが適用され、URL が に変わり、http://localhost/webroot/type_enduro-cross-trial機能します。

しかし、ユーザーがさらにフィルターを追加できるようにしたいので、ブランドでフィルター処理したいと考えており、URL をクリックすると に変わりますhttp://localhost/webroot/type_enduro-cross-trial/brand_yamaha/。など、より多くのフィルターを使用します。

この書き換え規則は、最初のパラメーターの値を取得するために機能します。

RewriteRule ^([^_/]+)_([^_/]+)/([^_/]*) search.php?$1=$2 [L]

しかし、さらにフィルターを追加すると、それらは明らかに無視され、書き換えルールがどうあるべきかわかりません。

ありがとう、そして私の英語でごめんなさい!

4

1 に答える 1

1

あなたが達成したいことは、 で行うのは自明ではありません.htaccess。この複雑な問題を解決する代わりに.htaccess、ファイル内に 1 つのルールを残すだけで、search.phpスクリプト内で作業を行うことができます。これにより、柔軟性が向上します。

次のように、すべてを 1 つのパラメーターとして php スクリプトに渡すだけです。

RewriteRule /pages/(.+) /page.php?page=$1 [QSA]

あなたのphpスクリプトでは$_GET['page']、例えば、explode.

PHP 内では、ファイル内ではまったくできないことですが、配列をはるかにうまく処理でき.htaccessます。

例は、元の Apache HTTP Mod_Rewrite ドキュメントから引用されています。

于 2012-12-13T15:46:47.683 に答える