2013-07-19 25 views
0

我有過提交數據的形式GET包括get參數和幀的.html頁面

這意味着,當我這樣做:

echo $this->Form->create('Search', array('type'=>'get', 'url'=> array('controller'=>'searches','action'=>'results'))); 
echo '<div class="search-box">'; 
echo $this->Form->input('search', array(
    'class' => 'search-input', 
    'placeholder' => 'Search Domain Names', 
    'label'=>false)); 
echo $this->Form->input('', array(
    'class' => 'search-icon', 
    'label' => false, 
    'type' => 'submit' 
    )); 
echo $this->Form->end(); 
    ?> 

我得到的網址爲:example.com/Searches/results?search=asdadasdasd

我想幀路線,使得我得到以下網址:

example.com/search/asdadasdasd.html

我看了一下:http://book.cakephp.org/2.0/en/development/routing.html

我如何得到擴展:http://book.cakephp.org/2.0/en/development/routing.html#file-extensions

但是,我怎麼會進去搜索查詢?

感謝

回答

0

那是不可能的,CakePHP的本身,它生成不知道搜索項表單時,因爲它還不存在,所以產生這樣的URL都必須動態完成時提交表單,即在用戶端,這將需要JavaScript。

最簡單的事情就是使用服務器端URL rewriting

下面是一個例子(應該正常工作在app/webroot/.htaccess),它測試的search鍵查詢字符串,並使用它的值重定向的情況下/searches/results(包括,路徑和查詢字符串進行處理的URL路徑相匹配不區分大小寫):

RewriteCond %{QUERY_STRING} ^search=(.*)$ [NC] 
RewriteRule ^searches/results$ /search/%1.html? [NC,R=302,L] 

這將重寫URL像/searches/results?search=whatever/search/whatever.html

+0

很快!我遲到了。好!是的,讓我試試。 – Karma