htaccess重定向规则md5并保留md5



我有:

https://old.example.com/{md5}我只想转移到一个新的域,如果它是一个md5,并将这个md5作为一个get变量=https://new.example.com/login?md5={md5}

我有以下规则

RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login$1 [R=301,L]

它起到了一半的作用,如果链在md5上,它会很好地重定向,但不会保留md5的值。我认为它缺少(.*)

我必须保留所有其他没有md5 的页面

https://new.example.com/contact.html
https://new.example.com/bablac/blibli.html
RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login$1 [R=301,L]

更新:您实际上没有捕获任何内容,因此$1反向引用始终为空。您需要在RewriteRule模式中创建一个捕获组(即括号中的环绕(,或者使用包含整个匹配的$0backreference。

您还重定向到了/login{md5},而您声明需要重定向到/login?md5={md5}(以"将此md5保留为get变量"(,因此您需要调整规则的最后部分以读取/login?md5=$1。换句话说:

RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login?md5=$0 [R=301,L]

您需要清除浏览器缓存,因为301(永久(重定向将由浏览器缓存。

我假设新旧域指向不同的服务器,否则,您可能需要一个明确检查请求主机名的条件。例如:

RewriteCond %{HTTP_HOST} ^old.example.com [NC]
RewriteRule ^[a-f0-9]{32}$ https://new.example.com/login?md5=$0 [R=301,L]

相关内容

  • 没有找到相关文章

最新更新