更改页面URL并获取前两个字母

时间:2017-07-02 06:41:06

标签: php .htaccess server

如何更改页面网址查询并获取前两个字母。在.htaccess或php

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]

2 个答案:

答案 0 :(得分: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

我假设这是你想要的?

答案 1 :(得分: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]

这会将您的网址转换为:

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

在搜索字段中使用字词bird执行搜索时。