2014-03-01 87 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

相關問題