私がやっていること:
高度なフィルター (多数のチェックボックス) を使用して検索を作成しています。最後に [] を付けてすべて同じ名前にする PHP 機能を使用しています。簡単な例を次に示します。
(HTML)
<h3>Elements</h3>
<label><input type="checkbox" name="elementPicked[]" value="1" checked="checked" /> Fire</label>
<label><input type="checkbox" name="elementPicked[]" value="2" checked="checked" /> Water</label>
<label><input type="checkbox" name="elementPicked[]" value="3" checked="checked" /> Wind</label>
<h3>Rarity</h3>
<label><input type="checkbox" name="rarityPicked[]" value="10,11,12" /> Common</label>
<label><input type="checkbox" name="rarityPicked[]" value="19,20,21,22" /> Uncommon</label>
<label><input type="checkbox" name="rarityPicked[]" value="29,30,31,32" /> Rare</label>
<!-- (...other somethingPicked[] types, like atk, def and cost...) -->
(PHP)
if(!empty($_GET['elementPicked'])) {
foreach($_GET['elementPicked'] as $elementPicked) {
//do something with each $elementPicked
}
}
mod_rewrite の場合、現在、私の書き換えは次のように機能します。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#Example: ./
RewriteRule ^index$ index.php [NC,L]
#Example: ./p/dashboard
RewriteRule ^p/([^/]*)$ index.php?z=$1 [NC,L,QSA]
これは、 i を呼び出すと、 callhttp://example.com
に書き換えられることを意味しますhttp://example.com/index.php
。
そして、私が呼び出すとhttp://example.com/p/cardlist
、それは call に書き換えられますhttp://example.com/index.php?z=cardlist
。これはかなり簡単です。
だから、今htaccessの問題:
このフォームの場合、URL は次のようになります:
http://example.com/p/carddisplay?elementPicked%5B%5D=1&elementPicked%5B%5D=2&elementPicked%5B%5D=3&rarityType=Select&rarityPicked%5B%5D=39%2C40%2C41%2C42&rarityPicked%5B%5D=49%2C50%2C51%2C52
は検索であり、後で同じ URL にアクセスする可能性があるため、POST はオプションではありません (選択したチェックボックスを他のセッション用に「保存」しません)。
私が達成したかったhttp://example.com/p/carddisplay/var1/something/var2/something/var3/something...
のは、上記の例を翻訳することでしたhttp://example.com/p/carddisplay/elementPicked%5B%5D/1/elementPicked%5B%5D/2/elementPicked%5B%5D/3/rarityType/Select/rarityPicked%5B%5D/39%2C40%2C41%2C42/rarityPicked%5B%5D/49%2C50%2C51%2C52
(または、URL エンコードされた [] を削除できれば、まだ地獄のように醜いので、それも素晴らしいでしょう..それをよりきれいにするための提案は大歓迎です)。
ここで必要なものとは逆のものが見つかりました-> URLに複数の変数がある.htaccess mod_rewrite
しかし、とにかく、私はそれをいじることができませんでしたvar[]
。これは実際に書き換えで達成できますか?