2011-06-30 168 views
4

我有一個小問題要問。是否有可能通過php或htaccess將miodominio.com/users.php?idu=x這樣的url更改爲miodominio.com/username之類的內容?用PHP自定義網址

我希望它是Facebook風格...其中「用戶名」是由idu = x選擇的用戶名。

+0

「接受」解決問題的答案是很好的形式。您可以點擊您選擇的答案旁邊的「打勾」來完成此操作。 –

回答

4

有多種方法可以解決這個問題,但這裏總是適合我的需求。

首先通過index.php指導您的所有URL請求,然後在PHP代碼中解析請求。

1)使用.htaccess文件通過index.php指導所有的URL。你會發現one way here by the CodeIgniter frameworka more advanced explanation here。如果您對.htaccess不熟悉,我首先推薦使用CodeIgniter .htaccess指南。

2)其次,使用PHP中的$_SERVER變量來提取URL。可能在$ _SERVER ['REQUEST_URI']的幫助下,您會發現'/ username /',然後您可以使用它來提取用戶的數據並將其提供給他們。

祝您好運,並謹防使用此方法的URL注入。

+0

非常感謝,它非常有用! –

1

你需要爲此使用apache的mod_rewrite。它可以將miodominio.com/username翻譯爲miodominio.com/users.php?idu=x。有一些很好的指南可以很容易地找到Google。

0

你可以嘗試使用這個模式的mod_rewrite(將其添加到的.htaccess):

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ users.php?idu=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ users.php?idu=$1 
0

你有喜歡你的.htaccess文件寫一個乾淨的URL:

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)/$ users.php?idu=$1 
0

認沽以下內容在您的.htaccess中:

RewriteEngine on 
RewriteRule ^([a-z0-9_-]+)/?$ /users.php?idu=$1 [NC] 

如果您只接受小寫字母,[NC]會使其不區分大小寫rname,從最後刪除[NC]。