2013-10-01 87 views
1

眼下,顯示以下網址:.htaccess的代碼的URL

​​

我要的是:

www.mysite.com/$username

我使用下面的代碼我的htaccess文件:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.+)$ /account.php?username=$1 [L,QSA] 

但它不起作用:URL與以前相同。

怎麼了?

回答

1

您的規則確實只有這個:

如果有人請求www.mysite.com/$username,內部服務器在/account.php?username=$username資源。

就是這樣。語法是RewriteRule <the URI that matches this> <gets internally rewritten to this>

所以你沒有任何關於更改URL的事情。這不是mod_rewrite的工作原理。它聽起來像你想要的是能夠在外部重定向瀏覽器,以便位置欄中的內容發生變化。要做到這一點,它要複雜得多:

RewriteCond %{THE_REQUEST} \ /account\.php\?username=([^&\ ]+)&?([^\ ]*) 
RewriteRule^/%1?%2 [L,R=301] 
+0

+1爲清楚起見。 URL重寫工程(我可以在地址欄中看到它),但現在,而不是顯示用戶的帳戶,我看到我的404自定義錯誤頁面。任何想法爲什麼? –

+0

@ChHr有沒有其他一些CMS或其他可能會干擾的規則?您仍然需要使用您在問題中的規則以及上面的重定向。 –

+0

請參閱我編輯的問題,我包括我的完整htaccess。會不會有干擾? –