2011-12-06 40 views
0

我使用這種形式在我的網站如何直接向用戶發送mod-rewrite url表單?

<form id="search" action="/search.php" method="get"> 
     <input type="text" onfocus="this.value='';this.style.color='black'" value="Search here" name="tag" id="search-text" /> 
        <input type="image" src="/search-new.gif" alt="Search" id="search-submit" /> 
       </form> 

搜索時,我用它搜索我得到這樣

http://www.mysite.com/search.php?tag=query 

一個URL,但我使用重寫規則在我的網站,我有網址這樣

http://www.mysite.com/search/query 

這顯示了同樣的結果

我要的是,當用戶搜索 而不會顯示這個網址

http://www.mysite.com/search.php?tag=query 

它應該顯示我重寫規則的網址

http://www.mysite.com/search/query 

如何,我不能這樣做呢?

+0

可能重複的[如何重寫這個簡單的url?](http://stackoverflow.com/questions/1616963/how-to-rewrite-this-simple-url) – Jakub

回答

1

我會重寫形式的onsubmit()事件,並通過更改了window.location到你喜歡的(只是CONCAT查詢值到底)的URL

這裏有一個快速和超髒JavaScript重定向自己例如:

<script type="text/javascript"> 

    function form_submitted() 
    { 
     var new_url = "http://www.mysite.com/search/" + encodeURIComponent(document.getElementById('search-text').value); 
     window.location = new_url; 
     return false; 
    } 

</script> 

<form id="search" onsubmit="return form_submitted()"> 
<input type="text" value="Search here" name="tag" id="search-text" /> 
<input type="image" src="/search-new.gif" alt="Search" id="search-submit" /> 
</form> 
+0

很好的謝謝:) – Badal

+0

現在嘗試與JavaScript禁用... –

+0

我會保留原始的'action'屬性並使用JavaScript來替換它。 –

0

您需要修改創建的「美化」 URL表單爲GET /搜索/並添加提交處理(在JavaScript)。

mod_rewrite重寫內部URL,而不是用戶看到的URL。

0

你可以用mod_rewrite做一個外部重定向到精確的URL。有關「永久重定向」,請參閱mod_rewrite文檔。

因爲這需要一個額外的往返(第一個請求是/search.php?tag=query發送一個外部永久重定向到/search/query被髮送,那麼URL /search/query通過瀏覽器瀏覽,並僅在內部改寫實際PHP腳本),我d按照另一個回覆中的建議添加JavaScript快捷方式(請注意,它仍然可以在沒有JavaScript的情況下運行)。

相關問題