注意:我无法成为 example.com 的 root ,因此无法编辑 httpd.conf。
我想要任何东西http://example.com重定向到 https 并包含斜线目录。这是问题的一个例子。如果是http://www... 或者http://example.com...
如果 URL 如下所示:
http://www.example.com/suggestions
它错误地重定向到主页:
https://www.example.com/index.php
当期望的结果是重定向到这里时:
https://www.example.com/suggestions
以下是我正在使用的 .htaccess 代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
答案1
据我所知,您正在强制在所有请求中使用 https - 对吗?
快速谷歌搜索给了我:
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
快速分解一下其含义:
RewriteCond
告知这适用于所有未使用 HTTPS 调用的请求。
其中发生了两件事RewriteRule
:
1)/?(.*)
表示它必须匹配路径中的所有内容,然后将其存储在内置变量中$1
。
2)%{SERVERNAME}
是一个指向服务器名称的内置变量(在您的情况下为 www.example.com)。
因此,RewriteRule 基本上说:匹配路径中的所有内容并重定向到同一域上的 HTTPS 对应部分。