我正在Linux上运行一个托管在Apache服务器上的WordPress站点。现在我网站上的每个页面都有多个不必要的重定向。第一个重定向将页面转换为其HTTPS版本,第二个重定向然后向路径添加尾部斜杠。当然,只有当这两个不在用户最初访问的URL中时才会发生这种情况。如果网址尚未存在,则第二个重定向还会将www
添加到网址。
第一个重定向是由httpd.conf文件中的重写规则引起的,当我配置了如下所示的加密SSL证书时添加了该规则:
Listen 80
<VirtualHost *:80>
DocumentRoot "/var/www/html"
ServerName "example.com"
ServerAlias "www.example.com"
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.example.com [OR]
RewriteCond %{SERVER_NAME} =example.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
第二个重定向是由WordPress本身引起的。由于管理面板中的设置将Wordpress地址和站点地址设置为https://www.example.com
,因此如果URL中不存在www
,则会添加files.SelectTokens("$..calls..@audioFileName")
。由于管理面板中选择的固定链接设置确保路径中存在尾部斜杠,因此重定向会添加一个尾部斜杠(如果不存在)。
我希望所有这些都可以完成,但在任何页面上最多只能有一次重定向。我知道我们可以通过在httpd.conf中添加重写规则来实现这一点,但我不确定如何在一次重定向中包含所有这些。这需要一个重写规则还是多个?是否会更改现有规则或添加其他规则?重写规则究竟是什么?请完整解释你的答案。