重定向子域到特定文件夹只无主域
问题描述:
我有这样一个环节:重定向子域到特定文件夹只无主域
a.site.co.il
b.site.co.il
...
我配置的服务器与外卡工作,这些子域名重定向到一个文件夹,这个IP:
62.90.154.000/goin
然后,我在62.90.154.000根上创建了一个htaccess,因此使用子域将重定向到特定的文件夹。
这方面的一个例子是:
a.site.co.il => 62.90.154.000/goin
但IP不会重定向到布莱恩的文件夹,但是到了IP本身:
62.90.154.000 => 62.90.154.000
这里是我的htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)$ /$1/ [R=301,L]
RewriteRule ^(!62?|.*)$ goin/index.php?subdomain=$1 [L]
这似乎工作,但问题是,这个htaccess也将主域(62.90.154.000)重新放入子域的文件夹中!
我该如何解决这个问题?
答
这条规则:
RewriteRule ^(!62?|.*)$
只是跳过REQUEST_URI与/62
开始。它不会跳过你的IP地址。
您可以使用:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
# skip below rule for IP addresses that start with 62.
RewriteCond %{REMOTE_ADDR} ^62\. [OR]
RewriteCond %{HTTP_HOST} ^62\.
RewriteRule^- [L]
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301,NE]
RewriteCond %{HTTP_HOST} ^(?!www\.)[^.]+\.site\.co\.il$ [NC]
RewriteRule .* /goin/$0 [L,NE]
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ goin/index.php?subdomain=$1 [L,QSA]
测试这种变化之前,请务必彻底清除浏览器缓存。
您的示例不会为子域重定向。他们都重定向到相同的IP名称。 – Tarek
你能设置一个重定向规则,以便像这样的任何子域名:a.site.co.il重定向到我的IP上的某个文件夹? – Tarek
对不起,这不够清楚。我编辑了这个问题。所以:a.site.co.il => 62.90.154.000/goin AND 62.90.154.000 => 62.90.154.000(而不是62.90.154.000/goin) – Tarek