如何在 GCP 中的 Bitnami 认证 wordpress 中配置 www 到非 www 重定向?

How to configure www to non-www redirect in Bitnami certified wordpress in GCP?

我的站点 运行 在 GCP 中,我需要编辑 .htaccess 文件以创建一个重定向,将 www 重定向到非 www。我该如何配置它?我在我的网站上没有看到 .htaccess 文件,我使用文件管理器插件来访问 wordpress 核心文件。

我在某处读到 bitnami 的 htaccess 配置不同,如何创建重定向?

顺便说一句,我的 httpd-vhosts.conf 文件有以下代码行,.

<VirtualHost *:80>
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

<VirtualHost *:443>
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apps/wordpress/conf/certs/server.crt"
    SSLCertificateKeyFile "/opt/bitnami/apps/wordpress/conf/certs/server.key"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

字面意思是 example.com,不是 mydomain.com,我应该担心吗?

实现重定向的方法有很多种。一个简单的方法是修改您的 apache conf 文件。将 example.com 替换为您的域名。

<VirtualHost *:80>
    ServerName example.com
    # Redirect everything arriving on HTTP to HTTPS
    Redirect "/" "https://example.com/"
</VirtualHost>

<VirtualHost *:443>
    ServerName example.com
    # Redirect anything that is not "example.com"
    <If "%{HTTP_HOST} != 'example.com'">
        Redirect "/" "https://example.com/"
    </If>
</VirtualHost>

Redirecting and Remapping with mod_rewrite

阅读此 link 以了解可避免的常见用例:

When not to use mod_rewrite

您应该修改 ServerName 以代表您服务器的域名。这应该与您在 WordPress AddressSite Address.

的 WordPress 设置中配置的相匹配

如果您使用的是 bitnami wordpress,您可以直接在 wordpress 中配置,因为唯一具有 wordpress 的 .htaccess 在

/opt/bitnami/apps/wordpress/htdocs/wp-content/plugins/akismet/.htaccess

我建议您更改名称站点,这里是 wordpress 的 link 来做。 还要考虑在你的 dns 记录中有记录

wordpressexample.com一个外部IP www.wordpressexample.com CNAME wordpressexample.com

这是为了让我能够从这两个链接访问您的网站。

由于您没有询问 why my WordPress website not showing,我假设您的 WordPress 网站运行良好,因此您可以保留 ServerName 原样。

此外,参考document of Apache HTTP Server

Due to the fact that the virtual host with ServerName www.example.com is first in the configuration file, it has the highest priority and can be seen as the default or primary server.

That means that if a request is received that does not match one of the specified ServerName directives, it will be served by this first .

即使服务器名称可能与您的真实域不匹配,将使用 *:80 上的第一个 VirtualHost。

因此,如果您的 WordPress 网站正常运行,我建议您保留它 example.com。

重定向设置参考article on Bitnami

您可以尝试使用 SSH and use one of text editors 编辑 /opt/bitnami/apps/wordpress/conf/httpd-vhosts.conf 文件:

<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://%1 [R=permanent,L]
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

<VirtualHost *:443>
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ https://%1 [R=permanent,L]
    ServerName wordpress.example.com
    ServerAlias www.wordpress.example.com
    DocumentRoot "/opt/bitnami/apps/wordpress/htdocs"
    SSLEngine on
    SSLCertificateFile "/opt/bitnami/apps/wordpress/conf/certs/server.crt"
    SSLCertificateKeyFile "/opt/bitnami/apps/wordpress/conf/certs/server.key"

    Include "/opt/bitnami/apps/wordpress/conf/httpd-app.conf"
</VirtualHost>

您需要重新启动 Apache HTTP Web 服务器才能重新加载设置文件。

$sudo /opt/bitnami/ctlscript.sh restart apache