2015-07-11 65 views
1

我想重定向/重寫規則的URL時,在它裏面 例如特殊參數 /後/路/?代碼= 1 重定向到 /後/路/URL重寫,如果GET參數

我不知道,但是這不這裏工作

RewriteEngine on 
RewriteBase/
RewriteRule ^.*code=1.*$ /post/path/ [L] 

,如果我跑http://domain.com/post/path/?code=4/oWTYGaoOsyts 會有什麼變化。

[REQUEST_URI] => /post/path/?code=1/oWTYGaoOsyts 
[SCRIPT_NAME] => /index.php 
[PHP_SELF] => /index.php 

回答

2

要在URL中搜索參數,您需要使用的RewriteCond和%{QUERY_STRING}:

RewriteCond %{QUERY_STRING} ^.*code=1.*$ 
RewriteRule .* /post/path/ [L] 

documentation

語法:重寫規則模式替換[國旗]

在指南和 htaccess的上下文中,模式最初將在刪除導致服務器到當前RewriteRule(例如: )的前綴之後,與 文件系統路徑匹配「app1/index.html」或「index.html」,具體取決於 關於定義指令的位置)。

如果要分別對陣的主機名,端口或查詢字符串,使用 一個的RewriteCond與%{HTTP_HOST}%{SERVER_PORT},或 %{QUERY_STRING}變量。

0

因爲你正在尋找code=1和你通過code=4

這應該與給定的輸入

RewriteRule ^.*code=4.*$ /post/path/ [L]

注意的工作,它可以匹配像code=40somecode=4

意外網址
+0

只是一個例子,它是正確的 – dazzafact