.htaccess转换查询字符串永远不会起作用

时间:2013-05-27 21:05:02

标签: .htaccess url-rewriting

目标: 将查询字符串转换为一个漂亮的URL,我从来没有工作过。

详细信息: 更改此网址: http://www.mywebsite.com/static-directory/index.php?state=florida&city=tallahassee

到这一个: http://www.mywebsite.com/static-directory/florida/tallahassee

我尝试了什么: 好吧,几乎所有事情。我的最新搜索提出了tutorial ...

我的根目录(httpdocs)中有.htaccess个文件。

任何帮助或指出我在Stack Overflow上正确回答的问题。

感谢。

1 个答案:

答案 0 :(得分:2)

  

<强>问题:
  “更改此网址:.../static-directory/index.php?state=florida&city=tallahassee   
对于这一个:.../static-directory/florida/tallahassee

根据这个问题,所有需要的是将第一个URL(请求)和查询转换为第二个URL而不进行查询。

以下是在根目录下的一个.htaccess文件中实现此目的的方法:

Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} /static-directory/index.php\?state=([^&]+)&city=([^\s&]+) [NC]
RewriteRule  ^static-directory/index.php  /static-directory/%1/%2? [R=301,L,NC]

但是,如果OP忘记提及整个想法是删除查询以获得“漂亮”的URL但仍然从原始URL获取数据,请将下两行添加到规则集中:

RewriteCond %{REQUEST_URI}  !index\.php [NC]
RewriteRule  ^static-directory/([^/]+)/([^/]+) /static-directory/index.php?state=$1&city=$2 [L]