0

フォームが送信されたときにURLパターンを実現するにはどうすればよいですか?

index.php

<form name="search_form" method="get" action="search-jobs/">
Skills : <input type="text" name="skills" />
Location : <input type="text" name="loc" />
<input type="submit" name="search" value="Search" />
<br />

.htacess

RewriteRule ^search-jobs/(.*)/(.*)?.php$ findjob4.php?skills=$1&loc=$2

フォームが送信されたときに、このurl/.htacessエイリアスをどのように実現できますか

パターンURL

www.example.com/search-jobs/{skills value}/{loc value}.php

サンプル

www.example.com/search-jobs/php/london.php

私がこれをしたとき、それはととしてエラーを出しObject not foundますError 404Pattern url基本的に:上記の形式で URLパターンを取得する方法とURLの最後に.php追加する必要があります

4

2 に答える 2

1

アクションをindex.php(同じページ)に設定し、これをindex.phpの先頭に追加します。

if (isset ($_GET ['skills'])) {
    header('Location: /search-jobs/' . $_GET ["skills"] . '/' . $_GET ["loc"] . '.php');
}

<form name="search_form" method="get" action="index.php">
    Skills : <input type="text" name="skills" />
    Location : <input type="text" name="loc" />
    <input type="submit" name="search" value="Search" />
    <br />
</form>

Rafeeによると、リライトURLから.phpも削除する必要があります。

于 2012-05-26T06:41:31.857 に答える
0

PHPコードをいじくり回す必要はありません。既存のコードを置き換えて、このコードを$ DOCUMENT_ROOT/.htaccessに配置するだけです。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+search-jobs/?\?skills=([^&]+)&loc=([^&]+) [NC]
RewriteRule ^ search-jobs/%1/%2.php? [R=302,L]

RewriteRule ^search-jobs/([^/]*)/([^.]*)\.php$ findjob4.php?skills=$1&loc=$2 [L,QSA,NC]

動作を確認したら、最初のルールでに変更R=302します。R=301

于 2012-05-26T07:23:12.550 に答える