2012-01-19 212 views
0

我已经做了一些搜索,并且我找不到解决方案。这是我想要的。用户类型:如何隐藏查询字符串,并使用htaccess重写URL

Case 1: www.example.com/user/profile.php?alias=bob 
Case 2: www.example.com/user/bob 

双方应在用户的浏览器显示为:

www.example.com/user/bob 

内部,应该将 “profile.php别名=鲍勃?”

目前,我在我的htaccess文件中有以下mod_rewrite规则:

RewriteEngine On 
#Converting alias to query 
RewriteRule ^([A-Za-z0-9-]+)/?$ profile.php?alias=$1 [QSA,L] 

这对于案例2有效。对于案例1 ho wever,url仍然显示完整的查询。我如何才能让它在案例1中正确显示?

回答

0

尝试将以下内容添加到您网站根目录下的htaccess文件中。

RewriteEngine On 
RewriteBase/

#if the request is using profile.php 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /user/profile\.php\?alias=([^&\ ]+) [NC] 
#redirect to user/[ALIAS] 
RewriteRule . /user/%1 [L,R=301] 

#extract alias from /user/alias 
RewriteRule ^user/([A-Za-z0-9-]+)/?$ profile.php?alias=$1 [QSA,L] 
+0

没有太大的工作。还打破了案件2 ...嗯.... – Skyd

+0

@Skyd编辑放在profile.php。让我知道您测试过的网址,如果不正确,请告诉我结果。 –

相关问题