2012-07-25 20 views
11

Makinem için yapılandırılmış harici IP ve ana makine ismim var.IP ile ana makineye yeniden yönlendirmek için Apache httpd.conf

Uygulamada, yalnızca API'lere erişmek için etki alanı adları kullanıyorum. IP adresime API'larıma erişmeye çalıştığımda, 302 Moved geçici olarak hata gösteriyor. Yani, sunucuya IP adresi olan istek için (Ana Sayfa için), ana bilgisayar adına yönlendirmelidir. kullanıcı ben apache httpd.conf içinde yönlendirmeyi kullanarak çalıştı Bunun için https://ayz-abc.mysite.com/main

kanalize edilmesi gerektiği https://XX.XX.XX.XX/main çarptığında olduğu

.

<VirtualHost XX.XX.XX.XX> 

DocumentRoot "/var/www/html" 
#ServerName ayz-abc.mysite.com/ 

# Other directives here 
RewriteEngine On 
RewriteRule /.* https://ayz-abc.mysite.com/ [R] 

</VirtualHost> 

Ben de Plsssss bana yardımcı aşağıdaki

<VirtualHost *.portnum> 
DocumentRoot "/var/www/html" 
RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteRule https://XX.XX.XX.XX/main https://ayz-abc.mysite.com/main [R=301,L] 
</VirtualHost> 

ile çalıştık.

+0

302 bir hata değil. Sunucu 302 ile yanıt veriyorsa, yönlendirme çalışıyor. Sunucudan HTTP yanıtı nedir? –

+0

UI, ana makine adına hala yönlendirilmemiş, ancak API'ler ana makine adlarını işaret edecek şekilde dahili olarak yapılandırılmıştır. Yani UI'den API'lere erişmeye çalıştığımda, API'lere (ana makine adıyla) yapılan istek 302 – Poppy

cevap

7

Tamam, günlükleri yeniden görebilirsiniz. Eğer hostname Bu benim için çalışıyor

+1

Bu, HTTP_HOST yanında URL'nin geri kalanını keser. RewriteRule^(. *) $ Https: //ayz-abc.mysite.com$1 [R = 301, L] kullanması daha iyi – pogeybait

1

bu deneyin:

RewriteRule $ https://ayz-abc.mysite.com/ [L,R] 

Ayrıca see here

+0

'u kullanmayı denedim ama yine de aynı hatayı alıyor. Ayrıca, Ankit, tarayıcıda, hala sadece IP adresini gösterir .. Hostname olmaz mı? – Poppy

+0

Daimi kalıcı https: //xx.xx.xx.xx/main https://ayz-abc.mysite.com/main/ yönlendirme tamam mı? – Poppy

1

bile yönlendirir bu koşulu dahil etmezseniz Bir yeniden yazma koşul

<VirtualHost XX.XX.XX.XX> 

DocumentRoot "/var/www/html" 
#ServerName ayz-abc.mysite.com/ 

# Other directives here 
RewriteEngine On 
RewriteCond %{HTTP_HOST} !^ayz-abc.mysite.com$ 
RewriteRule /.* https://ayz-abc.mysite.com/ [R] 

</VirtualHost> 

eksik. apache httpd.conf yapılandırmaları ekleyin

VAKA-1: Kullanıcı http://XX.XX.XX.XX/main veya http://ayz-abc.mysite.com/main çarptığında o https://ayz-abc.mysite.com/main kanalize edilmesi gerektiği

Yapılandırma:

# 
# Use name-based virtual hosting. 
# 
NameVirtualHost *:80 
<VirtualHost *:80> 
ServerName XX.XX.XX.XX 
Redirect /main https://ayz-abc.mysite.com/main 
</VirtualHost> 

DURUM 2: kullanıcı https://XX.XX.XX.XX/main vurur o

: https://ayz-abc.mysite.com/main

Yapılandırma kanalize edilmesi gerektiği 0

NameVirtualHost *:443 
<VirtualHost *:443> 
DocumentRoot "/var/www/html" 
#Server Name 
ServerName XX.XX.XX.XX 
SSLEngine on 
SSLOptions +StrictRequire 
# Redirect to the specified URL 
Redirect /main https://ayz-abc.mysite.com/main 
<Directory /> 
SSLRequireSSL 
</Directory> 
.... 
.... 
</VirtualHost> 
0

API kullanmıyorsanız, ancak tarayıcıların ve tarayıcıların bir IP adresi yerine URL'ye gitmesini istiyorsanız, RedirectPermanent'i kullanabilirsiniz.

<VirtualHost XX.XX.XX.XX> 

    RedirectPermanent/http://ayz-abc.mysite.com/ 

</VirtualHost> 

<VirtualHost XX.XX.XX.XX> 

    DocumentRoot "/var/www/html" 
    ServerName ayz-abc.mysite.com/ 

</VirtualHost> 

Bu arama motorları ile yardımcı oluyor, "Gelecekte yönlendirilir url kullanın lütfen" sinyalleri 301 HTTP durum ile yanıt avantajına sahiptir. Sitenizi yeni bir alana taşıdığınızda aynı çözümü kullanmalısınız.

İlgili konular