【问题标题】:How to rewrite rules for sub-domains如何重写子域的规则
【发布时间】:2023-03-27 11:26:02
【问题描述】:

我最近注册了一个域名 kbcsurveyors.com。然后,我创建了两个子域,在根文件夹中创建了两个新文件夹。

我的动机是,如果我输入 kbcsurveyors.com/preinspection,它应该指向 preinspection.kbcsurveyors.com。其他子域也一样。

在我放置在 mydomainname.com 根目录中的 .htaccess 中,我写了以下几行:

RewriteEngine  On                                     
RewriteBase /
RewriteRule ^preinspection/(.*)$          https://kbcsurveyors.com/$1 [L,NC,QSA]    # Handle requests for "Preinspection"

但是这种文件结构不起作用。

如何编写 .htaccess 文件来实现我想要的?

问候

【问题讨论】:

    标签: .htaccess url-rewriting


    【解决方案1】:

    删除或注释掉您现有的规则。

    使用此规则创建一个新文件preinspection/.htaccess

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^preinspection\.kbcsurveyors\.com$ [NC]
    RewriteEngine .* http://preinspection.kbcsurveyors.com/$0 [L,NE,R=301]
    

    【讨论】:

    • 感谢您的快速回复。它仍然会引发内部服务器错误。我已将 .htaccess 文件放在 httpdocs 文件夹中。
    • 正如我提到的,这应该放在preinspection/.htaccess。还要检查您的 Apache error.log 以了解它为什么抛出 500 错误
    • 糟糕!对不起。你是对的。它也被放置在 preinspection.kbcsurveyors.com 目录中。但现在,它显示“404 Not Found”。更糟糕的是,我以前从未使用过 .htaccess 文件,所以我有点无法调试 .htaccess 文件。
    • 当您将此 .htaccess 重命名为其他名称时,http://preinspection.kbcsurveyors.com 工作正常吗?
    • 重命名后就可以了。但是,在重命名之前,preinspection.kbcsurveyors.com 会抛出错误 500,而 kbcsurveyors.com/preinspection 会抛出错误 404。另外,我已经为这个域购买了 SSL。所以,协议是 https 而不是 http
    猜你喜欢
    • 1970-01-01
    • 2011-10-20
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2010-09-26
    • 2011-11-21
    相关资源
    最近更新 更多