2017-07-02 72 views
4

如何更改頁面url查詢並獲取前兩個字母。在.htaccess或php更改頁面URL並獲得前兩個字母

http://127.0.0.1/site/flowers/index.php?query=Bird 
http://127.0.0.1/site/flowers/index.php?query=eagle 

像這樣:

http://127.0.0.1/site/flowers/search/bi/bird.html 
http://127.0.0.1/site/flowers/search/ea/eagle.html 

的.htaccess代碼: 127.0.0.1/site/.htaccess

RewriteEngine on 
RewriteRule ([^/\.]+)/?.html$ index.php?query=$1 [L] 
+0

爲什麼你在'/ site /'的第一個斜槓後有'+'?你如何得到'/site/flowers/index.php?query = Bird' URL?它是通過一些表單發佈或href鏈接? – anubhava

+0

@anubhava,先生..形式帖子/site/flowers/index.php?query=Bird ....(地址欄) – moon93

+0

.htacces位置> ... 127.0.0.1/site/.htaccess – moon93

回答

1

這裏是你可以使用這個重定向的Javascript代碼:

<html> 
<head> 
<title>Form Post Example</title> 
<script> 
function prettySubmit(form, evt) { 
    evt.preventDefault(); 
    var val = form.query.value.toLowerCase(); 
    window.location = 
      form.action + '/' + val.substr(0, 2) + '/' + val.replace(/ /g, '+') + '.html'; 
    return false; 
} 

</script> 
</head> 
<body> 
<form method="get" action="flowers/search" onsubmit='return prettySubmit(this, event);'> 
    <input type="text" name="query"> 
    <input type="submit" value="Search"> 
</form> 
</body> 
</html> 

然後你就可以有這樣的規則site/.htaccess

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ([^/.]+)\.html$ index.php?query=$1 [L,QSA,NC] 

這將你的URL轉換爲:

http://127.0.0.1/site/flowers/search/bi/bird.html 

當您在搜索字段中使用單詞bird進行搜索時。

+1

非常感謝@anubhava爵士的幫助:) – moon93

1

以下內容添加到您的。 htaccess

RewriteRule ([^/\.]+)/?.html$ index.php?query=$1 [R=301] 

RewriteCond %{QUERY_STRING} query=([^/\.]{2})([^/\.]+) 
RewriteRule index.php search/%1/%1%2.html [R=301] 

然後http://127.0.0.1/site/flowers/Bird.html重定向到http://127.0.0.1/site/flowers/index.php?query=Bird這反過來又重定向到http://127.0.0.1/site/flowers/search/Bi/Bird.html

我假設這是你想要的嗎?