2016-01-20 47 views
0

我想使用國防部重寫與h查詢字符串以下動態URL重定向:重定向到剛剛查詢字符串

https://eu1.domain.com/~username/test.php?h=String_112016 

以下URL沒有test.php部分:

https://eu1.domain.com/~username/String_112016 

我在我的htaccess文件中嘗試了以下內容,但它得到404:

RewriteEngine On 

RewriteRule ^\~username/([^/]*)$ /~username/test.php?h=$1 [L] 

我在htaccess文件中沒有任何其他規則。

+0

從你寫的代碼看,你看到的並不是重定向。當用戶請求https://eu1.domain.com/~username/String_112016時,您希望test.php頁面以作爲參數h發送的「String_112016」呈現...是否正確? – VKK

+0

是的,正好VKK :) –

回答

0

從你寫的代碼中,我假設你想要的不是實際上的重定向。糾正我,如果我錯了,但你想要的是,當用戶請求/〜username/String_112016,你希望test.php頁面被呈現並通過「String_112016」作爲標籤爲h的參數。

你真的真的很近...試試這個:

RewriteEngine On 

RewriteRule ^/?~username/([^/]*)$ /~username/test.php?h=$1 [L] 

在重寫規則的第一個匹配的字符應該是一個正斜槓,而不是反斜槓。這種正斜槓實際上總是出現在請求中,但我認爲最好的做法是將其視爲可選項,因爲從技術上講,您可能會得到一個沒有的請求(格式錯誤)。 /之後的問號,使/可選。

+0

嗨VKK,我試過你的解決方案,但它仍然要求'test.php'頁面 –

+0

記住'〜用戶名'實際上是一個URL中的真實路徑,如果這是任何相關的 –

+0

@邁克爾,你不想它請求test.php頁面嗎? – VKK

0
RewriteEngine On 
RewriteBase/
RewriteRule ^~username/test.php\?h=(.*)$ /~username/$1 [L]