【问题标题】:.htaccess 301 redirect after trailing slash.htaccess 301 在斜杠后重定向
【发布时间】:2019-01-05 11:55:19
【问题描述】:

我知道这已经被问过很多次了,但我找不到这个特定的脚本。

所以我开始了特许经营,并将我的 www.site.com 移至 shop1.site.com(shop2.site.com 也存在。)

Google 似乎对新设置感到困惑,所以这就是我需要的

如果有人转到包含斜杠后的目录的 url,我需要使用 301 重定向到新站点

如果没有,就这样吧

例如:

www.site.com/info/ -> shop1.site.com/info/

www.site.com/help/ -> shop1.site.com/help/

www.site.com (leave as is)

所以基本上任何带有目录的 url,重定向,否则保留它

更新

这是我当前的 htaccess

RewriteEngine On 

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

ErrorDocument 404 /index.php 
ErrorDocument 500 /index.php

【问题讨论】:

  • RedirectMatch 301 ^/([^/]+/.*)$ http://shop.site.com/$1 适用于任何 www.site.com/xxx/ 和可能的子文件夹。不过,如果它必须是 real 文件夹,我不确定是否阅读您的要求
  • 谢谢回复 基本上我需要:如果斜杠后面有什么,把www.site.com替换成shop1.site.com 如果用户直接去www.site.com,让他们A 404真的不行没关系,因为它会将他们带到 shop1 404 页面
  • 好的,我上面给你的应该可以解决问题
  • 太好了,感谢您的帮助!添加一个答案,我会标记为正确
  • 还有一个问题:wwwshop1 是否共享同一个文档根文件夹?我的意思是,当您访问其中一个或另一个时,您是否登陆同一个页面(因此,同一个 htaccess)?

标签: .htaccess mod-rewrite


【解决方案1】:

这正是我所需要的。这会重定向除根以外的所有页面。请注意,这也会将所有流量重定向到 HTTP 而不是 HTTPS

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

#Rewrite everything except root
RewriteCond %{HTTP_HOST} ^(www\.)?site\.com$ [NC]
RewriteRule ^.+$ http://shop1.site.com%{REQUEST_URI} [L,R=301]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-10
    • 1970-01-01
    相关资源
    最近更新 更多