用htaccess重写get参数

时间:2014-05-29 00:36:50

标签: php .htaccess get rewrite

我很想知道如何使用htaccess重写get参数。

到目前为止,这是我的htaccess(仅删除index.php)。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

我想将以下网址http://example.com/?lang=en&dscroll=1200重写为http://example.com/en/dscroll/1200。有些htaccess高手,请:)?

由于

1 个答案:

答案 0 :(得分:0)

您拥有的规则不会删除index.php,它只会重定向到前面没有www的主机。

至于其他重写,您需要2.首先,您需要确保所有内容中的链接如下所示:

http://example.com/en/dscroll/1200

而不是具有查询字符串的那个。

然后你需要在你已经拥有的规则下面添加这两条规则:

RewriteCond %{THE_REQUEST} \ /+\?lang=([^&]+)&([^=&\ ]+)=([^&\ ]+)
RewriteRule ^ /%1/%2/%3? [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /?lang=$1&$2=$3 [L,QSA]