如何使用路径 url 将 www 重定向到非 www 在 apache2 中完成
How To Redirect www to Non-www with path url complete in apache2
所有带有 www (www.example.com/posts/categories) 的路径都重定向到主页。我如何从 .htaccess 重定向并保留完整路径?
https://www.example.com/posts/categories to https://example.com/posts/categories
当前配置:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/ [R=301,L]
</IfModule>
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/ [R=301,L]
你把这条规则放在了错误的地方。它需要从头开始,紧跟在 RewriteEngine
指令之后。通过将其放在末尾,在重写为 index.php
之后,任何对 www 子域的请求将被重定向到 index.php
(在第二轮处理期间)。
作为一般规则,外部重定向应始终在内部重写之前进行。
您还应该考虑实施 HTTP 到 HTTPS 重定向。
所有带有 www (www.example.com/posts/categories) 的路径都重定向到主页。我如何从 .htaccess 重定向并保留完整路径?
https://www.example.com/posts/categories to https://example.com/posts/categories
当前配置:
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/ [R=301,L]
</IfModule>
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] RewriteRule ^(.*)$ https://%1/ [R=301,L]
你把这条规则放在了错误的地方。它需要从头开始,紧跟在 RewriteEngine
指令之后。通过将其放在末尾,在重写为 index.php
之后,任何对 www 子域的请求将被重定向到 index.php
(在第二轮处理期间)。
作为一般规则,外部重定向应始终在内部重写之前进行。
您还应该考虑实施 HTTP 到 HTTPS 重定向。