0

私は次のフォームを持っています:

<form action="/" method="get"  name="main">

   <select size="1" name="type" id="sel" class="dropdown">
        <option value="Class1"  >YES</option>
        <option value="Class2"  >NO</option>
        </select>

    <input type="text" name="text"/>

      <button id="go" type="submit"/>Get the Results!</button>
</form>

.htaccess で

RewriteEngine on
RewriteBase /

Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/$ /index.php?type=$1&text=$2 [QSA,L]
RewriteRule ^([A-Za-z0-9^/]+)/([A-Za-z0-9_^/]+)/?$ /index.php?type=$1&text=$2 [QSA,L]

問題は、 .htaccessコードが機能するように、ユーザーをhttp://site.com/class1/text/に送信するにはどうすればよいですか?

フォームから/?type=class1&text=sometextに送信します

4

2 に答える 2

0

ルールの最初の RewriteCond のに次を入れてみてください。

RewriteCond %{QUERY_STRING} type=(\w+)&text=(\w+)
RewriteRule .* /%1/%2/? [QSD,R]

理論的には、これは にリダイレクト/?type=class1&text=sometextする必要があり/class1/sometext/ます。これは、正しいパラメータで index.php を呼び出す必要がある次の RewriteRules によって照合されますが、ブラウザの URL は変更されません。

また、RewriteRules の 2 番目のみが必要になる可能性があります。これ/?は、スラッシュがある場合とない場合に一致するためです。

于 2013-05-09T12:03:20.277 に答える