|
22
|
| hourback · 技术社区 · 17 年前 |
|
|
1
15
具体说明
这仅适用于以下虚拟主机:
( source ) Apache从2.4.8开始就支持这一点(在原始问题提出时不可用)。
来自文档
|
|
|
2
12
默认情况下,虚拟主机不会继承主服务器上下文中的mod_rewrite配置设置。要使主服务器设置应用于虚拟主机,您必须在每个虚拟主机中放置以下指令
点击 http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html 查找更多信息 |
|
|
3
10
看起来最简单的解决方案是添加
每个VirtualHost指令。这至少比摆弄.htaccess文件简单得多。Apache非常清楚这样一个事实
显然,更改默认值的方法是通过子级(vhost或director)中的RewriteOptions,所以你必须这样做 某物 在每个孩子。 |
|
|
4
5
我从未测试过它,所以它可能不起作用,但我会尝试添加一个
|
|
|
5
2
如果你只是想重写名称的域部分,例如修复一个常见的拼写错误,你甚至不需要“继承”选项。我设置了一个无名称的虚拟主机来捕获所有无效的主机名,并在重定向之前正确地重新排列它们。 由于这使用重定向,因此在应用重写后将找到适当的虚拟主机。
|
|
|
6
1
您可能希望使用InheritDownBefore,以避免向您的vhost添加更多垃圾。 全局letsencrypt别名的示例:
然后,您可以在每个vhost中执行此操作,而无需其他指令:
|
|
|
7
1
感谢大家回答以上问题。它帮助我找到了答案。
问题已经回答了,我只是想添加一个例子,以防你使用谷歌计算引擎。它说它需要
下面是一个如何实现的示例。
另请注意(用于测试): 当您测试重写引擎时。由于缓存和Cookie,很容易混淆它是否正常工作。如果你在浏览器上让它工作一次,即使你删除了重写代码,它也会继续工作。测试重写有时真的很烦人。你可能认为它有效,但后来它停止或开始了。 测试重写代码的最佳方法是在浏览器中打开一个隐身选项卡,清除或缓存Cookie。打开开发者模式以防万一。不要只是刷新。您需要点击URL并刷新。或者打开新选项卡。或者将URL复制/粘贴到新窗口中。如果你在刷新时使用同一个窗口,它可能只是重做过去的结果,而不是更新新代码。 |
|
|
8
0
对于我想要的全面指令,我总是使用“包罗万象”的VHost,比如。.....
它总是 好像 工作……错误日志被正确组合,等等……但这可能是早期/冲突/志同道合的指令的结果。 个人笔记。。 无论是谁想出了Apache的配置模式和语法,都是一个或一群在洞穴里度过了太多时间的丁巴特。…整个事情应该被清除并XML化,或者别的什么! 尽管两者截然不同。..Hello Kitty的设置过程 Cherokee ..到恶毒的简洁 NGinx 配置。…两者都更符合逻辑。。 |
|
|
Sp. Emmy · Apache:代理前身份验证 8 年前 |
|
|
EramSa · 为什么nginx虚拟主机不能在互联网上使用? 8 年前 |
|
|
Stackedo · 虚拟主机还是简单地重写? 8 年前 |