繁体   English   中英

Apache RedirectMatch 与正则表达式

[英]Apache RedirectMatch with Regex

我试图将每个没有# URL 重定向到相同的 URL,但在/path/之后带有#

示例:

这个网址: https://www.example.com/path/test/test : https://www.example.com/path/test/test

需要重定向到这个网址: https://www.example.com/path/#/test/test : https://www.example.com/path/#/test/test

所以我写了这个重定向匹配:

RedirectMatch permanent ^/path/(?!#)(.*)$ /path/#/$2

但它不起作用。

浏览器向我显示此消息: ERR_TOO_MANY_REDIRECTS

您可以在站点根目录 .htaccess 中使用此规则:

RewriteEngine On

RewriteRule ^/?(path)/(.+)$ /$1/#/$2 [L,NE,NC,R=301]

它会将/path/test/test重定向到/path/#test/test

无需在RewriteRule检查#是否存在,因为客户端浏览器无论如何都不会将#之后的任何部分发送到 Web 服务器。

你可以试试这个:

RedirectMatch ^/path/([^#]+)$ /path/#/$1

捕获的组([^#]+)表示任何字符串,最少 1 个字符,不包含#

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM