使用httacces正则表达式

时间:2017-07-07 15:48:59

标签: php .htaccess redirect hash

我试图在PHP查询中使用一半MD5部分重定向URL,并在'#'之后尝试重定向一半的MD5部分。使用.htaccess重写规则将符号添加到新目录。

网址示例:

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

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

网址包含两部分:

  1. 半MD5哈希(16 a-f和0-9哈希)
  2. 跟着一个"#"然后是base64编码的字符串
  3. 我试图询问网址是否包含16个字母数字字符,如果是,我想将整个网址(包括#hash关注信息)重定向到新目录。

    我正在尝试这条规则:

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

    但当然它不起作用,重定向的正确正则表达式是什么?非常感谢你!

1 个答案:

答案 0 :(得分:1)

您在网址中拥有的内容实际上是查询字符串而不是请求URI。您可以在站点根目录中使用此规则.htaccess:

RewriteEngine On

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