Apache httpd.conf用于将ip重定向到hostname

Pop*_*ppy 17 apache redirect virtualhost

我为我的机器配置了外部IP和主机名.

在应用程序内部,我只使用域名来访问API.因此,当我尝试通过IP地址访问我的API时,它显示302 Moved暂时出错.因此,对于使用IP地址命中服务器的请求(对于主页),它应该重定向到主机名.

也就是说,当用户点击https://XX.XX.XX.XX/main时,应将其重定向到https://ayz-abc.mysite.com/main

为此,我尝试使用apache的httpd.conf中的重定向.

<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>
Run Code Online (Sandbox Code Playgroud)

我也试过以下

<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>
Run Code Online (Sandbox Code Playgroud)

Plsssss帮助我.

Wil*_*nly 12

好.你错过了重写条件

<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>
Run Code Online (Sandbox Code Playgroud)

如果您不包含此条件,它将重定向,即使使用主机名

  • 除了HTTP_HOST之外,它还剥离了URL的其余部分.最好使用RewriteRule ^(.*)$ https://ayz-abc.mysite.com$1 [R = 301,L] (3认同)