重定向别名但不重定向 IP

重定向别名但不重定向 IP

我有一个 Debian 7 下的虚拟专用服务器。

在此服务器上,我有一个可以访问的网站,比如说https://www.monsiteweb.fr

我的 IP 地址是212.227.100.200我可以访问phpMyAdmin通过212.227.100.200/phpmyadmin

我想将写 monsiteweb.fr *.monsiteweb.fr 的人重定向到https://www.monsiteweb.fr

问题是,当我执行此重定向时,我无法再访问 212.227.100.200/phpmyadmin,因为它会自动重写为htps://www.monsiteweb.fr/phpmyadmin(我写的是 htps 而不是 https,因为我无法在帖子上添加超过 2 个链接)

我怎样才能让 monsiteweb.fr *.monsiteweb.fr 重定向到htps://www.monsiteweb.fr212.227.100.200没有重定向?

/etc/apache2/sites-enabled/ 我有 3 个文件可能因为缺乏经验而被弄乱了:

文件 1:000-默认

    <VirtualHost *:80>
    ServerAdmin [email protected] 
    ServerName monsiteweb.fr
    ServerAlias monsiteweb.fr *.monsiteweb.fr
    Redirect permanent   / https://www.monsiteweb.fr

    DocumentRoot /var/www
    <Directory />
    Options FollowSymLinks
    AllowOverride None
    </Directory>
    <Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
    AllowOverride None
    Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    Order allow,deny
    Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>

文件 2:monsiteweb.fr

    NameVirtualHost *:443

    <VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName monsiteweb.fr
    ServerAlias monsiteweb.fr *.monsiteweb.fr
    </VirtualHost>

    <VirtualHost *:443>
    ServerAdmin [email protected]
    ServerName monsiteweb.fr
    ServerAlias monsiteweb.fr *.monsiteweb.fr

    SSLEngine On
    SSLCertificateKeyFile /etc/apache2/ssl.certs/geotrust_privatekey_2016.key
    SSLCertificateFile /etc/apache2/ssl.certs/geotrust_publickey_2016.crt
    SSLCertificateChainFile /etc/apache2/ssl.certs/geotrust_intermediateca_2016.crt

   DocumentRoot /home/monsiteweb/www/


   <Directory /home/monsiteweb/www/>
   Options -Indexes
   AllowOverride All
  </Directory>

  </VirtualHost>

文件 3:default-ssl

   <VirtualHost *:80>
   ServerAdmin [email protected]
   ServerName monsiteweb.fr
   ServerAlias monsiteweb.fr *.monsiteweb.fr


   DocumentRoot /home/monsiteweb/www
   <Directory />
   Options FollowSymLinks
   AllowOverride None
   </Directory>
   <Directory /var/www/>
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   allow from all
   </Directory>

   ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
   <Directory "/usr/lib/cgi-bin">
   AllowOverride None
   Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
   Order allow,deny
   Allow from all
  </Directory>

  ErrorLog ${APACHE_LOG_DIR}/error.log

  LogLevel warn

  CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>

答案1

首先,您应该能够使用以下方式访问 phpMyAdminhttp://127.0.0.1/phpMyAdmin或本地 IPhttp://192.168.0.100/phpMyAdmin(例如)。

现在,如果您想使用公共 IP 访问 phpMyAdmin,您必须考虑可能的安全问题。您至少可以限制对某些 IP 的访问并设置额外的授权。

您正在运行 VirtualHosts。这是一个基于名称的系统。如果有请求,系统将查找与请求匹配的 VirtualHost,并根据 ServerName 和 ServerAlias 进行查找。如果未找到名称,系统将自动使用默认虚拟主机 - 000-default.conf 和 default-ssl.conf 进行响应。

http://你的公共IP/phpMyAdmin,Your_Public_IP 将从命名主机中搜索,显然它不会在那里找到它。因此它将使用默认虚拟主机(您已配置为提供服务)中的任何内容进行响应https://monsiteweb.fr)。

您提到,任何指向 monsiteweb.fr 的人都应被重定向到https://www.monsiteweb.fr。所以我猜你不希望人们使用http://你的公共IP也将被重定向到那里。

您可以配置一个简单的重定向:

<VirtualHost *:80>
  ServerName *.monsiteweb.fr
  Redirect 301 / https://www.monsiteweb.fr
</VirtualHost>

这将重定向除以下流量之外的所有流量:http://你的公共IP。如果您使用它来访问 phpMyAdmin,它应该已经可以工作了。

相关内容