0

mysite.com/searach/blabla/video自分のサイトで検索を入力して、の代わりにのようなURLを取得する場合の最善の方法は何ですかmysite.com/?search=blabla&type=video。役に立たないので、CodeIgniterを使用する必要があると言わないでください。必要なのはPHPの小さな関数だけだと確信しています。

これは私のsearch.phpです:

<form id="searchwrapper" name="searchform">
<input type="text" class="searchbox" id="txtSearch" name="search" alt="Search Criteria" />
<input type="submit" src="../images/empty.png" class="searchbox_submit"/>

<p id="circ">
<input  type="radio" id="mp3" name="type" checked value="mp3"/>
<label class="circ-btn normal" for="mp3">mp3</label>
                        </p>
<p id="circ">
<input type="radio" id="album" name="type" <?php echo $radio2;?> value="album"/>
<label class="circ-btn normal" for="album">Album</label></p>                
</form>

.htaccesのルールは正しく設定されています。を使用して自分のサイトに直接アクセスすると、mysite.com/searach/blabla/video正常に機能しますが、これは問題ではありません。自分のサイトで検索を入力するときは、このようなリンクが必要です。代わりに、私はこのリンクを取得し、正しくありませんmysite.com/?search=blabla&type=video

4

3 に答える 3

2

mod_rewriteを使用して、これを.htaccessファイルに入れることができます

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^search/([^/\.]+)/([^/\.]+)/?$ index.php?search=$1&type=$2 [L]

次に、これをPHPで使用します

$URI = substr($_SERVER['REQUEST_URI'], 1);
$URIparts = explode("/", $URI);

これにより、URLの一部を含む配列が得られます。

また、セキュリティのために入力をサニタイズするようにしてください。

于 2012-10-07T02:36:49.973 に答える
1

他の人がコメントしたように、apacheを使用している場合はmod_rewriteが必要です。

説明したように、実際に検索を入力してSEF URLに到達する場合は、次のようにします。

RewriteCond %{QUERY_STRING} ^search=(\w+)&type=(\w+)$
RewriteRule ^ http://mysite.com\/%1\/%2? [R,L]

..などのリクエストをリダイレクトします

http://mysite.com/index.php?search=A&type=B

.. に

http://mysite.com/A/B

..およびJKirchartzは、SEF urlにphpスクリプトを使用するためのサンプルを提供しました。たとえば、apacheを提供します。

http://mysite.com/video.php?search=A&type=B

..舞台裏で

http://mysite.com/A/B

..が要求されます

于 2012-10-07T03:01:47.163 に答える
0

apache Mod Rewriteを使用できますが、それを学んだばかりの人にとってはイライラする可能性があります。または、サイトをdrupal、wordpress、joomlaなどのcmsに移動して、エイリアスを自動的に作成することもできます。

于 2012-10-07T02:32:34.230 に答える