【问题标题】:Avoid content duplication after rewriting subdomain to folder将子域重写到文件夹后避免内容重复
【发布时间】:2018-12-05 16:02:52
【问题描述】:

我在我的.htaccess 中定义了以下规则,这是我不久前在另一个线程中找到的(我不记得是哪一个):

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/$1 [L]

目标是显示domain.com/sub 的任何内容,就好像它来自sub.domain.com。这工作正常。

但是,有一个小警告:sub.domain.comsub.domain.com/sub 都在工作。

如何防止sub.domain.com/sub 被访问?我尝试将其重写/重定向到sub.domain.com,但当然,我最终得到了无限循环重定向。

【问题讨论】:

    标签: apache .htaccess subdomain


    【解决方案1】:

    sub/.htaccess 中设置您的第一条规则:

    RewriteEngine On
    
    # remove /sub/ from URIs
    RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
    RewriteRule . /%1 [L,NE,R=301]
    

    将有问题的规则留在站点根目录 .htaccess 中。

    【讨论】:

    • 不幸的是,它没有。例如,我仍然可以同时访问sub.domain.com/login.phpsub.domain.com/sub/login.php
    • sub/ 文件夹中有 .htaccess 吗?
    • 是的,我愿意。但是,它只包含基本的东西,比如选项、mod_deflate、缓存控制等。
    • 它现在可以正常工作了。谢谢!顺便说一句,我没有复制该规则,但我移动了它,因为我认为在根域的.htaccess 和子域。
    • 也许您可以更新您的答案,告诉您将 2 个文件中的 2 个规则分开?它可能对不会阅读 cmets 的其他人有用。
    猜你喜欢
    • 2017-08-24
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 2015-03-25
    • 2014-06-30
    • 2012-11-20
    • 2021-11-22
    • 1970-01-01
    相关资源
    最近更新 更多