2014-05-09 171 views
0

我curently建立一個網站,我希望能夠改寫這樣URL重寫PHP APACHE

的網址,如果我有foo.com/registration.php我想foo.com/registration

同樣,如果我有一個成員區與foo.com/member.php我想要的東西like foo.com/member/"membername"/(會員名稱存儲在會話中,或者我可以做一個cookie)。

我已經看到了Apache的重寫模塊,但我真的不明白,或者至少不足以將它應用到我的網站

+0

http://www.addedbytes.com/articles/for-beginners/url-爲初學者重寫/開始您在這裏重寫URLS的任務。 – Dorvalla

+1

請注意'/ registration'是由您網站上的頁面鏈接產生或由訪問者輸入的SEO格式URI。您將使用.htaccess將_rewrite_寫入'/ registration.php'(請參閱其他答案以獲取詳細信息),這是您的服務器和腳本實際可以使用的形式。 –

回答

0

你必須使用.htaccess的轉換你的「http友好的URL 「到您的應用程序。

例如: 當你的網址是:http://www.domain.com/this/link.html

你htaccess的將是:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*).html$ index.php?filepath=$1&%{QUERY_STRING} [L,QSA] 

在你的index.php,你可以得到這個這個文件路徑要求:

$a_request_filepath = (empty($_GET['filepath'])) ? 'index' : $_GET['filepath']; 

您的變量將具有以下值:此鏈接

簡要說明: 您將尋找所需的路徑。 您從文件路徑中移除.html,並使用路徑的參數將其餘路徑發送到index.php。 因此,index.php?filepath = this/link是相同的頁面

0

如果您使用的是Apache 2.2.16或更高版本,mod_dir在一行中提供與Rewrite模塊類似的功能。由於它不調用檢查來查看請求的資源是否是文件或目錄,因此可能會更高效一些。

FallbackResource /index.php