Apache “为什么会?”^(.*)元“;在重写规则中,当^&引用;不是吗?

Apache “为什么会?”^(.*)元“;在重写规则中,当^&引用;不是吗?,apache,.htaccess,mod-rewrite,url-rewriting,url-redirection,Apache,.htaccess,Mod Rewrite,Url Rewriting,Url Redirection,根据模式“^”和“^(.*)$”导致不同的重写规则行为,但我不理解为什么 根据文章,使用“^”如下“强制使用https重写任何http请求”: 同一篇文章说,在重写规则中使用“^(.*$”而不是“^”也会迫使直接链接的资源(图像、css等)使用https” 为什么重写规则中的“^(.*$”适用于页面资产,而“^”不适用?除了文章中提到的内容之外,还有什么区别,比如相对URL和绝对URL?Apache HTTP服务器如何知道资源是页面资产而不是直接请求的 顺便说一下,我将“直接链接的资源”解释为专

根据模式“^”和“^(.*)$”导致不同的重写规则行为,但我不理解为什么

根据文章,使用“^”如下“强制使用https重写任何http请求”:

同一篇文章说,在重写规则中使用“^(.*$”而不是“^”也会迫使直接链接的资源(图像、css等)使用https”

为什么重写规则中的“^(.*$”适用于页面资产,而“^”不适用?除了文章中提到的内容之外,还有什么区别,比如相对URL和绝对URL?Apache HTTP服务器如何知道资源是页面资产而不是直接请求的


顺便说一下,我将“直接链接的资源”解释为专门指页面资产,而不是通常意义上的HTTP链接,因此我对我的问题进行了相应的措辞,但如果我误解了这一点,我将感谢您的任何见解。

Imho,这没有任何意义

我知道一些托管公司有自己的
mod\u rewrite
实现。这两条规则在实践中有什么不同

理论上,它们应该做与任何URI匹配的事情完全相同的事情

此外,当目标甚至不使用regexp的部分匹配时(它们使用
%{REQUEST_URI}
而不是
$1

如果它是
^$
(基本上是一个空字符串,因此只有根URL会被重定向),那么将产生影响


直接访问或引用访问也不会改变任何事情,除非您在
%{HTTP\u REFERER}

上使用
重写cond
,是的,子模式位在我看来也很奇怪。也许这是引用子模式的规则的早期版本的遗迹。不管怎样,谢谢你的见解。答案被接受。
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]