.htaccess从url中删除问号

我有一个网站,我想要重写的URL中有一个查询string。 url是domain.com/profile.php?user=sven ,我希望它redirectdomain.com/profile/user/sven

我创build了一个具有以下规则的htaccess文件:

 RewriteEngine On RewriteRule ^/?user/([^/]+)/?$ profile.php?user=$1 [L,QSA] RewriteCond %{QUERY_STRING} ^user=([A-Za-z0-9\-\_]+)$ RewriteRule ^profile\.php$ domain.com/user/%1?/ [L,R=301] 

这工作,但它redirect到的url是: domain.com/user/sven?/

我的问题是,我可以删除? 在url?

更新你的htaccess以下,

 <Ifmodulee mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?profile/(.*?)/?$ /profile.php?user=$1 [L] RewriteCond %{THE_REQUEST} ^[AZ]{3,9}\ /profile\.php\?user=([^]+) RewriteRule ^/?profile\.php$ /users/%1? [L,R=301] </Ifmodulee> 

我希望这有帮助。

Probaly所有的问题在这里:

 RewriteRule ^profile.php$ domain.com/user/%1<strong>?</strong>/ [L,R=301] 

这可能会解决您的问题。