2017-05-24 110 views
1

我有這樣一個環節:重定向子域到特定文件夾只無主域

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)重新放入子域的文件夾中!
我該如何解決這個問題?

回答

1

這條規則:

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] 

測試這種變化之前,請務必徹底清除瀏覽器緩存。

+0

您的示例不會爲子域重定向。他們都重定向到相同的IP名稱。 – Tarek

+0

你能設置一個重定向規則,以便像這樣的任何子域名:a.site.co.il重定向到我的IP上的某個文件夾? – Tarek

+0

對不起,這不夠清楚。我編輯了這個問題。所以:a.site.co.il => 62.90.154.000/goin AND 62.90.154.000 => 62.90.154.000(而不是62.90.154.000/goin) – Tarek

相關問題