2013-07-06 21 views
0

需要一些帮助。我有:如何.htaccess重定向到www而不会丢失GET

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 
RewriteRule ^catalog/ catalog.php 
RewriteRule ^catalog/(.*)/ catalog.php?id=$1 

这种重定向我没有收到(http://www.example.com/catalog/abc/

GET['id'] 

如何接受GET [ '身份证']?

+0

添加重写规则^目录/ catalog.php – vp1

+0

我问这样的版本 – vp1

+0

-1你问'如何,为.htaccess重定向到www没有松动GET'即使你_actual_问题无关用'WWW '或者事实上失去了(现有的)争论。请编辑你的问题。 – AD7six

回答

1

你的第二个规则需要2个国旗:

  • QSA - 查询字符串附加
  • L - 最后

总的来说你的.htaccess应该是这样的:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule (.*) http://www.example.com/$1 [R=301,L] 
RewriteRule ^catalog/([^/]+)/?$ catalog.php?id=$1 [L,QSA,NC] 

第2条规则中的QSA标志将确保在添加新的查询参数0时保留任何现有的查询字符串

+0

当'id'已被添加时,QSA如何帮助解决OP的问题? –

+1

问题不在于如何*保留任何现有的查询字符串*。 – Oswald

+0

@Oswald:我的回答不仅仅是添加QSA。在第二个RewriteRule中有一些选项,RewriteBase,L标志和不同的模式。 – anubhava

相关问题