【问题标题】:Virtual domains and subdomains using mod_rewrite使用 mod_rewrite 的虚拟域和子域
【发布时间】:2012-01-07 16:37:23
【问题描述】:

我想创建一个服务,用户可以在我的服务上获取子域或常规域。

想法是除了www.之外的所有子域都应该去/subdomains.php?user=[sub]&url=[requestet url]

除了我自己的 2 个域之外的所有域都应该转到 /domain.php?url=$1

我的 2 个域是: domain1.comdomain2.se

我试过以下代码:

<IfModule mod_rewrite.c>
Options +FollowSymLinks

RewriteEngine On

# Rewrite sub domains.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.domain2\.se$ [NC]
RewriteRule ^(.*)$ /subdomain.php?user=%2&url=$1 [QSA,L]

#Rewrite 
RewriteCond %{HTTP_HOST} !^www\.domain1\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.domain2\.se$ [NC]
RewriteRule (.*) http://www.domain1.com/domain.php?url=$1 [R=301,L]
</IfModule>

但它似乎不起作用。

【问题讨论】:

  • 会发生什么?哪些部分有效,哪些无效?模块是否启用?其他基本重定向是否有效?

标签: mod-rewrite dns subdomain


【解决方案1】:

子域:您如何期望一个 URL 同时是 domain1.comdomain2.se 的子域?

尝试例如这种简化:

RewriteCond %{HTTP_HOST} !^www\.(domain1\.com|domain2\.se)$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.(domain1\.com|domain2\.se)$ [NC]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-01
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多