Apache服务器配置从IP重定向到域名EC2

Apache server config redirect from IP to domain name EC2

我是 运行 linux EC2 实例上的 apache 网络服务器。

问题是您可以使用IP地址、DNS和域名访问服务器。这给SEO带来了问题,我想整理一下。

我已经阅读了 apache 文档,您可以执行 mod_rewrite,如果您有 root 访问权限,则需要在 httpd.conf 中完成,否则在 .htaccess 中为每个目录覆盖。 我有 root 访问权限,所以我正在尝试更改 httpd.conf

如果用户输入 http://52.17.12.123/ 要么 http://ec2-52.17.12.123.eu-west-1.compute.amazonaws.com/

我希望他们被重定向到 www.example.com

这是我试过的

<VirtualHost *:80>
 DocumentRoot "/var/www/html/my-website"
 # Other directives here
 RewriteEngine On
 RewriteCond %{HTTP_HOST} !^52.17.12.123.com$
 RewriteRule /* http://www.example.com/ [R]
</VirtualHost>

它似乎部分有效,但由于许多重定向,www.example.com 无法加载。

--编辑-- 谢谢,所以现在在我的 httpd.conf 中,我现在有以下配置

Listen 80

NameVirtualHost *:80

DocumentRoot "/var/www/html/my-website"

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.example\.com)$ [NC]
RewriteRule ^/(.*)$ http://www.example.com [R=301,L]

现在一切正常

It seems to partially work.
我怀疑,考虑到您目前在 httpd.conf 中的规则。

这样也可以

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^/(.*)$ http://www.example.com/ [R=301,L]