2014-03-01 50 views
2

我想使用URL在Apache Web服务器重写有这些类型的URL:如何创建只包含查询字符串的网址?

www.mysite.com/user.php?id=user1 
www.mysite.com/user.php?id=user2 
www.mysite.com/user.php?id=me 
www.mysite.com/user.php?id=you 
www.mysite.com/user.php?id=every_thing 

改为

www.mysite.com/user1 
www.mysite.com/every_thing 

www.mysite.com/user1/ 

我已经试过这是我的的.htaccess。

RewriteEngine On 
RewriteRule (.*) user.php?id=$1 

它没有工作。问题是什么?

我应该说我有其他的目录,如:

www.mysite.com/images/ 
www.mysite.com/videos/ 

因此,如何能我也做它,所以它不会发生冲突?

回答

1

你需要在你的根的.htaccess改编:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=301,L] 

RewriteCond %{THE_REQUEST} \s/+user\.php\?id=(\S+) [NC] 
RewriteRule^/%1? [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+?)/?$ /user.php?id=$1 [L,QSA] 
+0

没有我的用户是不同的!它不是user1,user2,...。这是所有可能的用户名与数字,字符和_。 – Saeid

+0

好吧现在检查更新 – anubhava

+0

谢谢。有用。我怎么能不活动(重定向)这个地址:“site.com/user/”到这个“site.com/user”???!因为图像不会因为新地址而加载! – Saeid

0

从WordPress的的.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(user\d) /user.php?id=$1 [L] 
</IfModule> 
+0

感谢bjelli。但它404找不到错误! – Saeid

+0

哪个网址为404做了什么? – bjelli

相关问题