我的域名結構爲domain.com/username(就像在Twitter/Facebook等)。如何在不創建目錄的情況下處理URL
我的知識是,我必須創建一個用戶名的目錄,並將其中的文件從該URL中查看。
是否有更好處理URL沒有爲每個用戶創建的目錄,只是檢索URL,並找出哪些用戶的頁面是&從數據庫中只從主域加載用戶數據的方式(即domain.com索引頁面)??
我的域名結構爲domain.com/username(就像在Twitter/Facebook等)。如何在不創建目錄的情況下處理URL
我的知識是,我必須創建一個用戶名的目錄,並將其中的文件從該URL中查看。
是否有更好處理URL沒有爲每個用戶創建的目錄,只是檢索URL,並找出哪些用戶的頁面是&從數據庫中只從主域加載用戶數據的方式(即domain.com索引頁面)??
mod_rewrite的
http://www.workingwith.me.uk/articles/scripting/mod_rewrite
基本上,你的「真實」的URL看起來像domain.com/profile.php?name=Andrew
,它會顯示與該名用戶的所有信息。然後,您可以使用mod_rewrite並使domain.com/andrew
成爲domain.com/profile.php?name=Andrew
的「快捷方式」。
剛剛進行了測試,它工作得很好:
profile.php -
<?php
echo '<h1>' . ucwords($_GET['name']) . '</h1>';
?>
的.htaccess -
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ profile.php?name=$1 [L]
當我訪問http://localhost/andrew,我看到我的名字,就像我應該。
是的,通過將所有不是真實文件的請求重寫到顯示請求的用戶數據的PHP腳本。把這個在您的.htaccess文件或httpd.conf中使用Apache的mod_rewrite:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /username.php [L]
然後username.php可以看看$_SERVER['REQUEST_URI']
看到該網址,挑選出用戶名,並顯示相應的內容。
更新.htaccess,所以它不會嘗試重寫重要的東西。 – Andrew 2011-01-24 06:28:22