【问题标题】:.htaccess setting to serve multiple domains.htaccess 设置为多个域提供服务
【发布时间】:2018-07-25 09:58:19
【问题描述】:

我有两个网站指向同一个文件夹位置。它们通过不同的脚本提供服务。下面是我插入到我的 .htaccess 中以实现这一点的代码。除了一个问题外,一切正常……域始终由上述文件提供服务,即使资源可用 - 我无法访问图像、css、js 文件夹等。

RewriteCond %{HTTP_HOST} xyz.com
RewriteRule ^(.*)$ xyz.php [QSA,L]

RewriteCond %{HTTP_HOST} pqr.com
RewriteRule ^(.*)$ pqr.php [QSA,L]

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    在您的域名规则之前添加这些行,例如:

    Options +FollowSymLinks -MultiViews
    RewriteEngine On
    RewriteBase /
    
    # do not do anything for already existing files
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .+ - [L]
    
    RewriteCond %{HTTP_HOST} =xyz.com
    RewriteRule .* xyz.php [L]
    
    RewriteCond %{HTTP_HOST} =pqr.com
    RewriteRule .* pqr.php [L]
    

    我还对您的规则做了一些小改动——它们会运行得更快一点:

    • 如果您不使用查询字符串进行操作,则不需要 QSA 标志
    • 如果您不打算捕获 ^(.*)$ 并在目标 URL 中使用,则无需使用它
    • =xyz.com 搜索完全匹配(快速简单的字符串比较),而您的 xyz.com 使用更昂贵的正则表达式在域名中搜索此文本。显然,如果您有一些子域也由相同的代码提供服务(例如 xyz.comwww.xyz.com),那么最好保留已有的。

    【讨论】:

    • 谢谢 Lazyone!效果很好......这些技巧也非常有用:)
    猜你喜欢
    • 2020-05-30
    • 1970-01-01
    • 2018-03-20
    • 2017-05-22
    • 2019-06-10
    • 2021-11-08
    • 2014-04-17
    • 1970-01-01
    • 2013-02-14
    相关资源
    最近更新 更多