我试图将特定网址及其所有子网址重定向到特定网址。使用301重定向,这工作正常,但浏览器URL也显示测试内容。请参阅下文了解更多详情
示例:https://www.mywebsite.com/customer/account/login/referer/*
需要重定向到https://www.mywebsite.com/customer/account/login/register
我尝试的是:
Options +FollowSymLinks
RewriteEngine on
Redirect 301 /customer/account/login/referer https://mywebsite.com/customer/account/login/register
htaccess规则适用于此网址。如果我输入
https://mywebsite.com/customer/account/login/referer/testing
这将重定向到https://mywebsite.com/customer/account/login/register/test
请告诉我如何从重定向的网址修剪其他部分(注册后的网址部分/ *)。我想要实现的是
https://mywebsite.com/customer/account/login/referer/*
[参考者/(包括/引用者)之后的任何网址都需要重定向到https://mywebsite.com/customer/account/login/register
]。
答案 0 :(得分:2)
这是预期的行为,如Redirect
然后,以URL-Path开头的任何请求都会向目标URL位置的客户端返回重定向请求。 匹配的网址路径之外的其他路径信息将附加到目标网址。
要将以此前缀开头的所有请求重定向到给定的网址,您可以使用RedirectMatch
,它使用正则表达式而不是网址前缀
RedirectMatch ^/customer/account/login/referer https://mywebsite.com/customer/account/login/register
您无需使用
Options +FollowSymLinks
RewriteEngine on
因为这是针对mod_rewrite的。 {_ 1}}和Redirect
由mod_alias模块提供。