我curently建立一個網站,我希望能夠改寫這樣URL重寫PHP APACHE
的網址,如果我有foo.com/registration.php
我想foo.com/registration
。
同樣,如果我有一個成員區與foo.com/member.php
我想要的東西like foo.com/member/"membername"/
(會員名稱存儲在會話中,或者我可以做一個cookie)。
我已經看到了Apache的重寫模塊,但我真的不明白,或者至少不足以將它應用到我的網站
我curently建立一個網站,我希望能夠改寫這樣URL重寫PHP APACHE
的網址,如果我有foo.com/registration.php
我想foo.com/registration
。
同樣,如果我有一個成員區與foo.com/member.php
我想要的東西like foo.com/member/"membername"/
(會員名稱存儲在會話中,或者我可以做一個cookie)。
我已經看到了Apache的重寫模塊,但我真的不明白,或者至少不足以將它應用到我的網站
你必須使用.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是相同的頁面
如果您使用的是Apache 2.2.16或更高版本,mod_dir在一行中提供與Rewrite模塊類似的功能。由於它不調用檢查來查看請求的資源是否是文件或目錄,因此可能會更高效一些。
FallbackResource /index.php
感謝您的幫助。 如果有人被捕,我通過一個簡單的教程學習了這個概念(沒有廣告,我只是認爲他是個好老師^^):https://www.youtube.com/watch?v=OsCTzGASImQ&list=PLfdtiltiRHWGXVHXX09fxXDi-DqInchFD&index=1
http://www.addedbytes.com/articles/for-beginners/url-爲初學者重寫/開始您在這裏重寫URLS的任務。 – Dorvalla
請注意'/ registration'是由您網站上的頁面鏈接產生或由訪問者輸入的SEO格式URI。您將使用.htaccess將_rewrite_寫入'/ registration.php'(請參閱其他答案以獲取詳細信息),這是您的服務器和腳本實際可以使用的形式。 –