apache - 我的带有 www 的网站 URL 显示了正确的内容,但显示了没有 www 的 Apache2 Ubuntu 默认页面。我该如何纠正?

标签 apache ubuntu flask

我关注了How To Deploy a Flask Application on an Ubuntu VPS How To Install the Apache Web Server on Ubuntu 20.04 来自我的主机所在的 Digital Ocean。我设置了两个 A 类 DNS 记录,其中主机名是我的带有 www 的 URL,而我的 URL 是没有它的 URL,它们直接指向我的公共(public) IP 的值。
我可以通过将 ServerName 更改为我的公共(public) IP、带有 www 的网站或不带 www 的网站来更改显示正确信息的地址。我怎样才能做到www.mywebsite.com和 mywebsite.com 都正确显示?重定向肯定不是正确的答案吗?
这是 conf 文件:/etc/apache2/sites-available/FlaskApp.conf

<VirtualHost *:80>
                ServerName www.mywebsite.com
                ServerAdmin admin@mywebsite.com
                WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
                <Directory /var/www/FlaskApp/FlaskApp/>
                        Order allow,deny
                        Allow from all
                </Directory>
                Alias /static /var/www/FlaskApp/FlaskApp/static
                <Directory /var/www/FlaskApp/FlaskApp/static/>
                        Order allow,deny
                        Allow from all
                </Directory>
                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
我尝试添加一个永久重定向它不起作用。
<VirtualHost *:80>
                ServerName www.mywebsite.com
                Redirect permanent / http://mywebsite.com/
                ServerAdmin admin@mywebsite.com
                WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
                <Directory /var/www/FlaskApp/FlaskApp/>
                        Order allow,deny
                        Allow from all
                </Directory>
                Alias /static /var/www/FlaskApp/FlaskApp/static
                <Directory /var/www/FlaskApp/FlaskApp/static/>
                        Order allow,deny
                        Allow from all
                </Directory>
                ErrorLog ${APACHE_LOG_DIR}/error.log
                LogLevel warn
                CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

最佳答案

对于其他有此问题的人,我通过添加服务器别名找到了解决方案:

<VirtualHost *:80>
            ServerName www.mywebsite.com
            ServerAlias mywebsite.com
            ServerAdmin admin@mywebsite.com
            WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi
            <Directory /var/www/FlaskApp/FlaskApp/>
                    Order allow,deny
                    Allow from all
            </Directory>
            Alias /static /var/www/FlaskApp/FlaskApp/static
            <Directory /var/www/FlaskApp/FlaskApp/static/>
                    Order allow,deny
                    Allow from all
            </Directory>
            ErrorLog ${APACHE_LOG_DIR}/error.log
            LogLevel warn
            CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

关于apache - 我的带有 www 的网站 URL 显示了正确的内容,但显示了没有 www 的 Apache2 Ubuntu 默认页面。我该如何纠正?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70687883/

相关文章:

java - 如何在tomcat和php之间传递 session

python - Windows上本地django开发如何配置apache和mod_wsgi

php - PHP 是否默认启用 ZLIB 支持?

python - 如果通过某些路由访问,请禁用 WTForms CSRF

python-2.7 - 跨源资源共享多个站点

php - apache_request_headers() 与 $_SERVER

java - Apache Nutch - 路径问题

ubuntu - 如何从 Fedora LiveCD 中提取 "installed"文件结构

node.js - Webpack 构建失败并出现 EPIPE 错误(仅限 Linux 子系统)

flask - 属性错误 : Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with