目标: 将查询字符串转换为一个漂亮的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上正确回答的问题。
感谢。
答案 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]