【问题标题】:Redirect to other domain, but keep original domain, except one folder重定向到其他域,但保留原始域,除了一个文件夹
【发布时间】:2014-09-02 11:34:00
【问题描述】:

我有一个收集多个经销商的网站。他们中的一些人有自己的域,所以对于他们,我需要重定向到我的域,但将键入的域保留在地址栏中。

这个人为我做了那个把戏:Redirect to other domain but keep typed domain

但问题是重定向到我服务器上的子文件夹,所以mydealer.com 将指向mydomain.com/dealers/mydealer,这导致我所有的静态文件都无法加载。它们位于名为 /static/ 的文件夹中。

那么有没有办法让mydealer.com/anything/ 指向mydomain.com/dealers/mydealer,但让mydealer.com/static/ 指向mydomain.com/static/

【问题讨论】:

    标签: .htaccess redirect


    【解决方案1】:

    您可以添加一个条件来检查是否请求/static/

    RewriteEngine On
    
    # for "static" part of dealers
    RewriteCond %{HTTP_HOST} !^(www\.)?(domain\.com)$ [NC]
    RewriteCond %{REQUEST_URI} ^/static/ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [P]
    
    # for dynamic part of dealers (/dealers/domain-dealer/*)
    RewriteCond %{HTTP_HOST} !^(?:www\.)?(domain\.com)$ [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?([^.]+) [NC]
    RewriteRule ^(.*)$ http://%1/dealers/%2/$1 [P,NC]
    

    【讨论】:

    • 这适用于所有重定向吗?假设我也有 dealer2.com 指向 domain.com/dealers/dealer2dealer3.com 等也一样。
    • 阅读您的评论,我想我误解了您最初的问题。假设您有自己的网站domain.com。在/dealers/ 文件夹中,每个经销商(域名)都有一个文件夹。当有人去free-dealer.com(例如)你希望它加载domain.com/dealers/free-dealer/的内容而浏览器的url保持不变?这意味着您可以访问每个经销商的服务器(和 htaccess)对吗?
    • 每个经销商都会将他们的域名指向主 IP(对于domain.com),是的。所以重点是浏览free-dealer.com 应该和浏览domain.com/dealers/free-dealer 完全一样。经销商只有域,没有服务器,这就是为什么我需要free-dealer.com/static/*的请求指向domain.com/static/*,而free-dealer.com/*指向domain.com/dealers/free-dealer/*
    • 好的,我明白了。在编辑我的答案之前还有一件事。你说dealers only have domains, no servers。这意味着这些域指向您的主域服务器上的同一个文档根目录?
    • 对。你可以看到我编辑过的答案。不要忘记将 domain.com 替换为您的主域。应该按预期工作(在我的环境和工作中测试)。告诉我您是否有问题
    猜你喜欢
    • 2018-03-27
    • 2013-04-07
    • 2017-04-06
    • 1970-01-01
    • 1970-01-01
    • 2014-10-09
    • 2017-02-27
    相关资源
    最近更新 更多