2017-07-07 102 views
1

我想用一個PHP查詢中的MD5部分的一半和使用.htaccess重寫規則的'#'符號到一個新目錄後的一個base64編碼的字符串重定向URL。使用httacces正則表達式重定向php查詢使用httacces正則表達式

URL的例子:

A)/?7027fcbbc2a1ccb9#N61/vMSRNqYQBhb+DcaSfv2YGW1HiBbSpMUoSHrtxok=

B)/index.php?f9c4bb60426abaf9#RBmcvFnf5+wFwP54IM8f7pUSvmPn2aOFm1Z6LbIOFK8=

URL包含兩個部分:

  1. 半MD5哈希(16 AF和0-9散列)
  2. 後跟一個「#」,然後是一個base64編碼的字符串

我想問一下,如果URL包含16個字母數字字符,如果是的話,我想重定向整個URL(包括#hash後面的信息)到一個新的目錄。

林本規則嘗試:

RewriteRule ^\\?[a-f0-9]{16}$ /newdirectory/$1 [L] 

但是,當然,它不工作,什麼是重定向正確的正則表達式?非常感謝!

+0

@anubhava事情是這樣的:你可以在網站根目錄的.htaccess使用此規則通過'http://example.com/ 7027fcbbc2a1ccb9#N61/vMSRNqYQBhb + DcaSfv2YGW1HiBbSpMUoSHrtxok =',我想重定向到:' http://example.com/newdir/?7027fcbbc2a1ccb9#N61/vMSRNqYQBhb + DcaSfv2YGW1HiBbSpMUoSHrtxok ='問候! – Vega

回答

1

你在你的URL中有什麼是一個查詢字符串而不是請求URI。

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^[a-f0-9]{16}$ [NC] 
RewriteRule ^/?$ /newdir/ [L,R=301,NE] 
+1

工作很好!非常感謝! – Vega