Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用htaccess regex使用哈希重定向php查询_Php_.htaccess_Redirect_Hash - Fatal编程技术网

使用htaccess regex使用哈希重定向php查询

使用htaccess regex使用哈希重定向php查询,php,.htaccess,redirect,hash,Php,.htaccess,Redirect,Hash,我正在尝试使用.htaccess重写规则将URL重定向到一个新目录,其中PHP查询中有一半MD5部分,在“#”符号后有一个base64编码字符串 URL示例: A) /?7027fcbbc2a1ccb9#N61/vMSRNqYQBhb+dcasfv2ygw1hibbsmuoshrtxok= B) /index.php?f9c4bb60426abaf9#RBmcvFnf5+WFWP54IM8F7PUSVMPN2AOFM1Z6LFK8= URL包含两个部分: 半MD5散列(16 A-f和0-9散列)

我正在尝试使用.htaccess重写规则将URL重定向到一个新目录,其中PHP查询中有一半MD5部分,在“#”符号后有一个base64编码字符串

URL示例:

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

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

URL包含两个部分:

  • 半MD5散列(16 A-f和0-9散列)
  • 后跟一个“#”,然后是base64编码的字符串
  • 我试图询问URL是否包含16个字母数字字符,如果是,我想将整个URL(包括#hash followered info)重定向到一个新目录

    我正在尝试这个规则:

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

    但这当然行不通。重定向的正确正则表达式是什么?非常感谢你

    URL中的内容实际上是一个查询字符串,而不是请求URI。您可以在站点根目录中使用此规则。htaccess:

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

    @anubhava类似于这样:
    http://example.com/?7027fcbbc2a1ccb9#N61/vMSRNqYQBhb+dcasfv2ygw1hibbsmuoshrtxok=
    我想重定向到:
    http://example.com/newdir/?7027fcbbc2a1ccb9#N61/vMSRNqYQBhb+dcasfv2ygw1hibbsmouoshrtxok=
    问候!