我試圖捕捉到一個URL,例如.htacces捕捉頁面名稱,並把它作爲一個get方法
http://www.mysite.com/somepage.php?sometext=somevalue
,並重定向它。
http://www.mysite.com/index.php?page=somepage.php&sometext=somevalue
我試圖尋找這樣的.htaccess在線,但無法找到它。
你能幫我嗎?
我試圖捕捉到一個URL,例如.htacces捕捉頁面名稱,並把它作爲一個get方法
http://www.mysite.com/somepage.php?sometext=somevalue
,並重定向它。
http://www.mysite.com/index.php?page=somepage.php&sometext=somevalue
我試圖尋找這樣的.htaccess在線,但無法找到它。
你能幫我嗎?
我很確定這是一個重複的,,但我有點問題發現它/他們 [編輯: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腳本處理(或更可能,處理不當)。
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的應用我的查詢字符串?](
可能重複http://stackoverflow.com/questions/5516883/how-should-i-structure-my-query-string-在-MVC-htaccess的應用程序) – AgentConundrum 2011-04-08 14:25:43