2012-10-22 90 views
1

我已經搜索谷歌和這裏的教程,以幫助我重寫我的網址。 我想有人解釋我必須寫什麼,爲什麼。mod_rewrite使用.htaccess重寫網址

我有這個網址:

http://iescup.eu/tournaments.php?tourney[id]=1 
http://iescup.eu/tournaments.php?tourney[id]=2 
http://iescup.eu/tournaments.php?tourney[id]=3 

我想有這個網址:

http://iescup.eu/#!/tourneys/1 
http://iescup.eu/#!/tourneys/2 
http://iescup.eu/#!/tourneys/3 

真誠 符文Naundrup達爾

回答

0

所以你在瀏覽器的URL地址欄輸入http://iescup.eu/tournaments.php?tourney[id]=1。請求/tournaments.php?tourney[id]=1被髮送到服務器iescup.eu。該服務器,這些規則在文檔根htaccess文件:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^tourney\[id\]=([0-9]+)$ [NC] 
RewriteRule ^/?tournaments.php$ /#!/tourneys/%1? [L,R=301,NE] 

%{QUERY_STRING}變量針對匹配和數字ID進行分組,並通過%1反向引用。該規則的目標在末尾有一個?以刪除查詢字符串,並且使用NE標誌,因此#未被編碼。

該規則將瀏覽器重定向到http://iescup.eu/#!/tourneys/1,從而更改URL地址欄。瀏覽器然後發送另一個請求到iescup.eu/。請注意,#!/tourneys/1片段從不發送到服務器。片段僅僅是客戶端,用於確定應該如何處理內容(也由JavaScript使用)。

+0

豎起大拇指,我只是有另一個問題。我認爲http://iescup.eu/#!/tourneys/1只是一個url顯示,當我在瀏覽器中輸入該鏈接時,它會將我帶回到我的網站的index.php。 我能以某種方式解決這個問題嗎? –

+0

@RuneNaundrupDahl它引導你回到索引,因爲URI(沒有片段)是'http:// iescup.eu /'。我認爲必須有一些JavaScript根據片段呈現某些東西 –

+0

你能舉個例子嗎? –