2010-08-18 16 views
1

我想我可以使用.htaccess文件來做這件事,但是我查了它並沒有發現任何有用的東西。我想要做的是有我的網站重定向到一個PHP頁面,當用戶鍵入他們喜歡的URL的用戶名:將「mydomain.com/user」重定向到「mydomain.com/name.php?id=user」

example.com/username 

而且有它是同一個PHP頁面,如:

example.com/name.php?id=username 

即使重定向後,我也希望它顯示爲example.com/username,但這不是必需的。有任何想法嗎?

回答

2

您可以使用mod_rewrite在服務器上透明地重寫您的URL。

假設你只有用戶名下面您的域名,這樣的事情會做你想要什麼:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .+ name.php?id=$0 
+1

你可能要加上'的RewriteCond%{} REQUEST_FILENAME!-d'一樣,所以目錄沒有改寫爲好。 – vonconrad 2010-08-18 01:10:31

+0

@vonconrad你似乎知道你在說什麼,我完全不熟悉編輯.htaccess文件......你認爲哪個例子會更好?感謝您的幫助 – RobHardgood 2010-08-18 01:12:58

+0

@vonconrad - 是的,爲了簡潔,我已經排除它,但不知道OP的情況,它可能包括它更安全。我會修改規則集。 – 2010-08-18 01:14:09

2
RewriteEngine On 

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

我認爲這會工作。

Apache的mod_rewrite的指南是在這裏 http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

+0

您不需要代字符,因爲您已經指示mod_rewrite僅在請求不是實際目錄或文件時才應用規則(請參閱上面的兩個RewriteCond RewriteRule)。 – vonconrad 2010-08-18 01:09:11

+0

噢。我是新的URL重寫:) – Jonah 2010-08-18 01:10:48

相關問題