我的页面上有一个搜索引擎,该引擎以get方法开头。搜索部分工作正常,但路由却不行。我认为,.htaccess文件中将出现以下问题:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTP_HOST} !^www\.(.*)
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
因此,当我单击搜索按钮时,它会将我重定向到
www.mysite.com/search?keyword=something
。如果我将其从URL替换为www.mysite.com/search/something
,则引擎正常工作。所以我只需要从.htaccess重定向它即可。
您需要知道的是,我是用Codeigniter编写的,路由部分是:
$route['/search/(:any)'] = "home/search/$2";
有什么主意吗?谢谢您的帮助。
答案 0 :(得分:0)
使用php重定向以修改Routes.php文件
$route['/search/(:any)'] = "home/search/$2";
$route['search']['get'] = function ()
{
$url='home/search/'.$_GET['keyword'];
header("Location: $url");
die();
};