这是一个关于 Apache 的 mod_rewrite的规范问题。
更改请求 URL 或将用户重定向到与他们最初请求的 URL 不同的 URL 是使用 mod_rewrite 完成的。这包括以下内容:
关于 Mod_Rewrite 规则你想知道但又不敢问的一切!
我怎样才能成为编写 mod_rewrite 规则的专家?
测试规则的地方
该htaccess的测试网站是玩弄你的规则,并测试他们的好地方。它甚至会显示调试输出,因此您可以查看匹配的内容和不匹配的内容。
直到今天,我都使用基于名称的虚拟主机,但没有使用该NameVirtualHost
指令。有效。现在,我阅读了该指令并添加了它 - 没有变化。所以 -NameVirtualHost
真的有必要吗,或者 Apache 2.4 会在没有设置时自动设置吗?
在浏览器的 url 栏中键入 localhost 时,它会正确重定向到https://localhost
,但是我的代码中用于加载文件的所有调用http
都不会被重定向或重写到https
. 例如:
<link rel="stylesheet" type="text/css" href="http://static/css/colwidth.min.css">
Run Code Online (Sandbox Code Playgroud)
我Redirect permanent / https://localhost/
在 Apache 配置文件VirtualHost
部分中尝试过RewriteRule
,我也尝试过.htaccess
Firefox
我得到的错误是:
阻止加载混合活动内容“
http://static/css/colwidth.min.css
”
我将不胜感激帮助了解如何与做既Apache的配置和.htaccess
(我知道.htaccess
是不是首选方法-但我还是想知道为什么它不工作)
网址:
<VirtualHost *:80>
ServerAdmin me@localhost
DocumentRoot "D:/Website/path/to/root"
ServerName localhost
Redirect permanent / https://localhost/
<Directory "D:/Website/path/to/root">
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require ip 127.0.0.1
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerAdmin me@localhost
DocumentRoot "D:/Website/path/to/root"
ServerName …
Run Code Online (Sandbox Code Playgroud) apache-2.2 ×2
apache-2.4 ×2
.htaccess ×1
301-redirect ×1
mod-rewrite ×1
redirect ×1
redirection ×1
ssl ×1