2011-04-08 60 views
0

我試圖捕捉到一個URL,例如.htacces捕捉頁面名稱,並把它作爲一個get方法

http://www.mysite.com/somepage.php?sometext=somevalue 

,並重定向它。

http://www.mysite.com/index.php?page=somepage.php&sometext=somevalue 

我試圖尋找這樣的.htaccess在線,但無法找到它。

你能幫我嗎?

+0

可能重複http://stackoverflow.com/questions/5516883/how-should-i-structure-my-query-string-在-MVC-htaccess的應用程序) – AgentConundrum 2011-04-08 14:25:43

回答

5

我很確定這是一個重複的,,但我有點問題發現它/他們 [編輯:I found one,雖然可能不是最好的例子]。

無論如何,這是用相當標準的代碼解析一個相當標準的問題:

RewriteRule ^(.*)$ index.php?get=$1 [L,QSA] 

RewriteRule捕獲作爲$1整個請求,並將其傳遞到index.php作爲page GET參數。

末尾的[QSA]標誌表示採用任何現有的GET參數(在您的示例中爲sometext=somevalue),並將它們作爲附加GET參數添加到新請求上。 (該[L]標誌只是說,這應該是最後一條規則執行。)

注意,這也將重定向的東西像圖像或CSS文件的請求,所以這是很好這個規則之前直接添加以下行

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

這些行說:「如果請求的文件或實際存在的目錄,不處理的規則。」這樣,真正的文件請求將由Apache直接提供,而不是由您的PHP腳本處理(或更可能,處理不當)。

0
RewriteRule ^(.*).php?sometext=(.*)$ index.php?page=$1.php&sometext=$2 [QSA,L] #rewrite 
RewriteRule ^(.*).php?sometext=(.*)$ http://www.mysite.com/index.php?page=$1.php&sometext=$2 [R=301,L] #redirect 
的[我應該如何結構,MVC htaccess的應用我的查詢字符串?](
相關問題