301重定向子文件夹,不允许子目录使用相同的规则重定向

时间:2017-10-04 10:03:30

标签: apache .htaccess redirect

我设置了301重定向,当用户导航到

时,会重定向/作业及其下方的所有子页面

https://www.main-domain.com/jobs/

 RedirectMatch 301 /jobs/.* https://www.main-domain.com/all-vacancies/

我的问题出现了,因为我在" main-domain.com"的子目录中有一个子站点。当我想要它被排除时,它也使用被重定向的路径/作业。

 https://www.main-domain.com/subsite/jobs/
 # I don't want this url redirected back to https://www.main-domain.com/all-vacancies/

我已经尝试过以下方法来保持/ jobs仅从域的根目录重定向但是它不起作用而且我很难过!

 RedirectMatch 301 ^(?i)/jobs/.*?$ https://www.main-domain.com/all-vacancies/

干杯,JB。

1 个答案:

答案 0 :(得分:0)

您已经通过代码匹配任何包含/jobs/的请求,但为了达到您想要的效果,只需将请求从作业开始匹配,您应该执行以下操作:

RedirectMatch 302 ^/jobs/.* https://www.main-domain.com/all-vacancies/

此处此.*与新地点的任何丁字裤都不匹配,每个请求都会被重定向到所有空缺主页面(index),但如果您想要任何请求来,因为它是所有职位空缺都改为:

RedirectMatch 302 ^/jobs/(.*) https://www.main-domain.com/all-vacancies/$1

注意:,清除浏览器缓存并进行测试。如果可以,请将302更改为301