如何在PHP中爲每個用戶實現虛榮URL?我正在實施我的網絡應用程序的登錄系統,作爲Drax LLP登錄系統的調整版本。在PHP中爲單個用戶實現虛榮URL
因此,每個用戶都應該能夠修改他的個人資料,這個個人資料最終會出現在他的虛榮URL上。就像xyz.com/user一樣。
任何提示/想法?謝謝..
如何在PHP中爲每個用戶實現虛榮URL?我正在實施我的網絡應用程序的登錄系統,作爲Drax LLP登錄系統的調整版本。在PHP中爲單個用戶實現虛榮URL
因此,每個用戶都應該能夠修改他的個人資料,這個個人資料最終會出現在他的虛榮URL上。就像xyz.com/user一樣。
任何提示/想法?謝謝..
這裏所涉及的文件的一個例子:
的.htaccess:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>
的index.php
<?php
function getWebPath() {
$location = "";
// Read the relative URL into an array
if(isset($_SERVER['HTTP_X_REWRITE_URL'])) { // IIS Rewrite
$location = $_SERVER['HTTP_X_REWRITE_URL'];
} elseif(isset($_SERVER['REQUEST_URI'])) { // Apache
$location = $_SERVER['REQUEST_URI'];
} elseif(isset($_SERVER['REDIRECT_URL'])) { // Apache mod_rewrite (breaks on CGI)
$location = $_SERVER['REDIRECT_URL'];
} elseif(isset($_SERVER['ORIG_PATH_INFO'])) { // IIS + CGI
$location = $_SERVER['ORIG_PATH_INFO'];
}
return $location;
}
$location = getWebPath();
print_r($location);
功能上面應該成爲你的前面的方法控制器類在某處。你只需要從$ location中減去你的基本路徑,這樣你就剩下了虛擬路徑。然後你可以做任何你想做的事 - 例如簡單地分割'/',然後按照路徑工作,根據URI將每個剩餘部分傳遞給下一個控制器。你也可以使用正則表達式來編寫更復雜的路由規則(Django和其他一些框架)。
例如: /型材/ hardik988
將被傳遞給負責「設定」,然後決定如何處理該路徑的剩餘部分做控制器。它可能會查找用戶名並顯示適當的模板。
謝謝你們。我得到它的工作:) – 0xff0000 2010-09-27 17:52:29
這是相對簡單的:你有一個mod_rewrite
規則將請求映射到www.domain.com/username
像www.domain.com/users/username
。
但是,您需要知道禁止用戶名是什麼,因爲我認爲您將擁有其他頂級頁面,例如www.domain.com/about
或www.domain.com/terms
。因此,您不希望註冊about
和terms
的用戶成爲用戶名。
好吧,我會看看,:)我是新來的PHP,仍然鑽研手冊..謝謝。另外,感謝用戶名異常的提示:) – 0xff0000 2010-09-23 08:04:03
您可以使用的一種方法是當用戶註冊用戶名時,使用'cURL'或類似的方式檢查URL是否已經存在('200 OK')。如果是,請拒絕他們註冊的能力。 – 2010-09-23 10:49:35
如果前端無法輕鬆訪問數據存儲區(例如,準備向Web服務發送請求),則cURL技巧非常聰明,並且當然非常高效。 – 2010-09-24 05:20:24
虛空網址將是user.xyz.com,而不是xyz.com/user :)那麼,簡單的mod_rewrite規則,如果可用,將做伎倆 – 2010-09-23 07:53:23
爲什麼子域的方法? – 2010-09-23 07:56:15
哦,對不起:)的困惑。是的,我正在尋找像xyz.com/user – 0xff0000 2010-09-23 08:03:09