2015-11-11 46 views
0

我想使用.htaccess將鏈接到配置文件頁面的URL從ID號轉換爲名稱。例如,在Facebook上,如果你要去:使用.htaccess將用戶標識轉換爲用戶名?

https://facebook.com/profile.php?id=4 

它會帶你到馬克扎克伯格的個人資料頁面。不過,你也可以簡單地去:

https://facebook.com/zuck 

...這是更加用戶友好,更容易記住。我如何使用htaccess將一個id號碼轉換成一個用戶名?我是否需要將它發送到php腳本來處理併發回名稱?

回答

4

您不能專門用.htaccess,因爲您需要從數據庫中獲取該ID的用戶名,但是您可以使用PHP來執行此操作。 在你.htaccess文件:

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

然後,您可以檢查這樣的事情在profile.php

if(isset($_GET['user'])){ 
    if(is_numeric($_GET['user'])){ //Check if the input is all numeric 
     //Grab the username from database 
     //Redirect user to site.com/user/$username 
    } 
} 

對PHP的is_numeric()功能更多信息: http://php.net/manual/en/function.is-numeric.php

你可能還需要檢查如果用戶的用戶名是完全數字的,以避免不斷重定向用戶。如果你確定用戶沒有所有的數字用戶名,你會沒事的。

0

你不能,作爲.htaccess無法訪問存儲層,你必須使用一個PHP腳本,將您IDusername,然後做重定向。

相關問題