![如何从域中删除 WWW,并使其始终重定向到 https://example.com 或 https://foo.example.com](https://linux22.com/image/734836/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%9F%9F%E4%B8%AD%E5%88%A0%E9%99%A4%20WWW%EF%BC%8C%E5%B9%B6%E4%BD%BF%E5%85%B6%E5%A7%8B%E7%BB%88%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%20https%3A%2F%2Fexample.com%20%E6%88%96%20https%3A%2F%2Ffoo.example.com.png)
我正在使用 Apache2,但对它还很陌生。
我遇到的问题是我的网站导致了无限循环,而且我也想从我的域和子域中删除 WWW 部分。
这是我的端口 80 的配置文件:
<VirtualHost *:80>
ServerName foo.example.com
ServerAlias www.foo.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/foo/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =foo.example.ga
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI}
</VirtualHost>
这是我的端口 443 的配置文件:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/foo/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerName foo.example.com
ServerAlias www.foo.example.com
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateFile /etc/letsencrypt/live/foo.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/foo.example.com/privkey.pem
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.foo.example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
</IfModule>
现在我知道它编码不正确,但如果有人能给我指出正确的方向,那就太好了。谢谢!
答案1
我犯了一个新手错误,没有检查指定目录中的 .htaccess。我删除了内容(我喜欢将网络信息放在一个地方),并将重写规则放在我的配置文件中。