带有Regex的Apache RedirectMatch

时间:2017-10-19 18:12:55

标签: regex apache

我正在尝试将没有#的每个网址重定向到#之后的/path/

示例:

此网址:https://www.example.com/path/test/test

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

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

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

但它不起作用。

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

2 个答案:

答案 0 :(得分:2)

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

RewriteEngine On

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

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

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

答案 1 :(得分:0)

你可以试试这个:

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

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