2011-01-24 136 views
0

我的域名結構爲domain.com/username(就像在Twitter/Facebook等)。如何在不創建目錄的情況下處理URL

我的知識是,我必須創建一個用戶名的目錄,並將其中的文件從該URL中查看。

是否有更好處理URL沒有爲每個用戶創建的目錄,只是檢索URL,並找出哪些用戶的頁面是&從數據庫中只從主域加載用戶數據的方式(即domain.com索引頁面)??

回答

2

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,我看到我的名字,就像我應該。

+0

更新.htaccess,所以它不會嘗試重寫重要的東西。 – Andrew 2011-01-24 06:28:22

1

是的,通過將所有不是真實文件的請求重寫到顯示請求的用戶數據的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']看到該網址,挑選出用戶名,並顯示相應的內容。

相關問題