微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Apacheconfiguration中检测Apache版本?

tl; dr:如何在.conf或.htaccess文件中执行以下操作:

<IfApache22> # Do A </IfApache22> <IfApache24> # Do B </IfApache24>

更长的问题:

对于Apache 2.4,旧的订单被弃用,以支持Require 。

在我的.htaccess文件

Apache URL重写/redirect与数据库数据

.htaccess不会阻止“此连接不受信任”警告

禁用热链接或直接下载我的video,只有当我的网站页面显示video时,才能stream式传输video

.htaccess重写规则的麻烦

与Apache的AngularJS路由问题

<FilesMatch ".(long|list|file|types)$"> Order allow,deny </FilesMatch>

这意味着Apache无法启动,除非启用access_compat 。 虽然这样做提出了一个有用的解决方法,我想要一个解决scheme与两种语法一起工作,因为configuration将分发到许多服务器。 问题是我如何检测Apache的当前版本并应用正确的指令。

我打算使用该文件分发给许多人使用的框架,我不能控制/保证他们有或没有任何特定的服务器设置,这就是为什么我想要文件2.2 / 2.4“不可知论者”。

带有多个查询string的mod_rewrite?

mod从.domain重写到www.domain htaccess

透明redirect到端口8080

.htaccess重写规则冲突

在Apache中使用带有中文字符的mod_rewrite

我用过的黑客。

# Apache 2.2 <Ifmodulee !mod_authz_core.c> Satisfy Any </Ifmodulee> # Apache 2.4 <Ifmodulee mod_authz_core.c> Require all granted </Ifmodulee>

假设你已经安装了mod_version (很多发行版认发行),你可以这样做:

<IfVersion >= 2.4> # Require ... </IfVersion> <IfVersion < 2.4> # Order ... # Deny ... # Allow ... </IfVersion>

您可以在同一主机上运行不同版本的Apache。 问:单独目录中的单独配置文件有什么问题? 我真的相信这可能是最干净的方法

不过,Apache .conf文件允许一个<IfDefine> ,你可以在运行时用“-D”指定:

http://httpd.apache.org/docs/2.0/mod/core.html#ifdefine

你可以绕过需要知道通过使用mod_rewrite为您的访问控制:

RewriteEngine On RewriteCond %{REQUEST_URI} !.(long|list|file|types)$ RewriteRule .* - [F,L]

我遇到了这个问题,因为FallbackResource不在Apache的早期版本中,而且一旦聪明的托管公司通过FallbackResource获得了一个Apache版本,就会移除mod_rewrite。 当我想把库代码放到适应环境的时候,我使用下面的.htaccess:

<Ifmodulee mod_rewrite.c> RewriteEngine on RewriteRule ^ - [E=protossl] RewriteCond %{HTTPS} on RewriteRule ^ - [E=protossl:s] RewriteRule "(^|/)." - [F] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^ index.PHP [L] </Ifmodulee> <Ifmodulee !mod_rewrite.c> FallbackResource index.PHP </Ifmodulee>

现在当然有一些Apache版本/设置在这里失败 – 但是如果mod_rewrite在那里,使用它,如果没有,希望FallbackResource在那里。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐