我不明白Apache服务器重定向的行为



我的所有网站都位于 AWS 负载均衡器后面。我在Stack Overflow论坛上问了一个关于重写的相关问题,如果你想了解更多关于背景调查的信息 WordPress 永久链接行为

我自己通过将重定向移出 Apache httpd.conf 文件解决了这个初始问题。在检查我的网站性能后,我被迫重新访问。

简而言之,问题是,如果我使用以下方法在/etc/httpd/conf/httpd.conf 中重定向:

RewriteEngine On
<IF "req('Host') != 'www.beta-test-three.com.au'">
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://www.%{HTTP:Host}%{REQUEST_URI} [L,R=301]
</IF>
<ELSE>
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=301]
</ELSE>

我的主页 sitename.com 显示并且速度超快。不幸的是,由于某种原因,我的 .htaccess 文件中的 URL 重写被绕过了。下面的规则允许我在每个链接上显示漂亮的 URL.php而无需索引,例如 sitename.com?index.php/page-name,而是允许所有页面显示为 sitename.com/page-name

开始WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

结束 WordPress

现在我真正希望通过 httpd.conf 进行重定向的原因是我的网站加载时间从 2.9 秒增加到 1.8 秒,我节省了一秒钟多!

我只是不明白为什么当我在 httpd.conf 中打开重定向时,我的 .htaccess 重写规则会被停用?

感谢您提供的任何帮助。

这个答案是将以下内容添加到 httpd.conf 中的 VirtualHosts 部分

<Directory "/var/www/html/site-name">
AllowOverride All
</Directory>

我已经在WordPress支持表格中回复了更多详细信息 https://wordpress.org/support/topic/i-不-理解-行为-在-apache-服务器-重定向/

谢谢和问候。

最新更新