2012-10-07 2 views
0

mysite.com/?search=blabla&type=video 대신 mysite.com/searach/blabla/video과 같은 URL을 얻기 위해 내 사이트에 검색을 입력 할 때 가장 좋은 방법은 무엇입니까? CodeIgniter는 도움이되지 않기 때문에 사용해야한다고 말하지 마십시오. PHP에서 필요한 기능은 모두 작은 기능이라고 확신합니다. URL에서 쿼리 URL을 불러오고

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.

+1

을 요청하는 경우, 예를 들어, 가진 아파치는 URL을 다시 작성 규칙을 htaccess로 사용할 수있는 무대 뒤에서

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

.. 서비스를 제공 – Virendra

답변

1

다른 사람들이 언급했듯이, 아파치를 사용한다면 mod_rewrite가 필요합니다.

실제로 검색을 입력하고 당신이 설명한대로, 당신이 뭔가를하고자하는 SEF의 URL에서 결국하려면 :

같은

http://mysite.com/index.php?search=A&type=B 
로 요청을 리디렉션 할
RewriteCond %{QUERY_STRING} ^search=(\w+)&type=(\w+)$ 
RewriteRule^http://mysite.com\/%1\/%2? [R,L] 

..

.. 및

http://mysite.com/A/B 

..에 JKirchartz는 SEF URL의 PHP 스크립트를 사용하여 샘플을 제공

http://mysite.com/A/B 

..이

+0

gllen i arleady have .htaccess configurated 내가 준 코드는 .htaccess도 마찬가지입니다. 내가 원하는대로 실행하려면 내 페이지 또는 검색 양식에 어떤 코드를 추가해야합니까? –

+0

해결책을위한 gllen 감사합니다 이것은 나가 원한 무슨이다 –

0

아파치 모드 리 라이트를 사용할 수 있습니다 만, 배우는 사람에게는 실망 할 수 있습니다. 또는 drupal, wordpress 또는 joomla와 같은 CMS로 사이트를 이동하여 자동으로 별칭을 만들 수 있습니다.

2

당신은 mod_rewrite을 사용하고

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

다음 PHP는 당신에게 URL의 부분 배열을 제공

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

이를 사용하여 .htaccess 파일이 넣을 수 있습니다.

또한 보안을 위해 sanitize the input을 시도해야합니다.

+0

한 긴 이야기 => 짧은 – Wh1T3h4Ck5

+0

JKirchartz 내 검색 양식으로 내 질문을 업데이트했습니다. 내 검색 양식에서 작동하게하는 방법에 대한 자세한 정보를 제공 할 수 있습니까? –

+0

@ColaDeu @ gllen의'RewriteCond'와'RewriteRule'을 사용하십시오 ... 폼은 항상'get' 메소드를 사용하여 제출하여 URL에 QUERY_STRING을 넣습니다. @ gllen의 메소드는 원하는 결과를 나타내는 것을 재 작성합니다. – JKirchartz

관련 문제