标签: mod-headers

如何仅在HTTPS上从.htaccess设置HSTS标头

我的Web应用程序在我控制的不同数量的主机上运行.为了防止需要更改每个vhost的Apache配置,我在我的repo中使用.htaccess文件添加了大部分配置,因此每个主机的基本设置只是几行.这也可以在部署新版本时更改配置.目前.htaccess(un)设置头文件,做一些重写魔术并控制UA的缓存.

我想使用.htaccess在应用程序中启用HSTS.只需设置标题很简单:

Header always set Strict-Transport-Security "max-age=31536000"
Run Code Online (Sandbox Code Playgroud)

但规范明确指出:"HSTS主机不得在通过非安全传输传输的HTTP响应中包含STS头字段." 因此,我不希望在通过HTTP连接发送标头时发送标头.见http://tools.ietf.org/html/draft-ietf-websec-strict-transport-sec-14.

我试图使用环境变量设置标题,但我被困在那里.有谁知道怎么做?

apache .htaccess mod-headers

70
推荐指数
3
解决办法
6万
查看次数

如何使用mod_headers和mod_expires进行缓存

我想在我的网站上缓存图像和其他文件,所以我做的是确保mod_headers和mod_expires: -

/usr/sbin/httpd -l
Run Code Online (Sandbox Code Playgroud)

然后编辑.htaccess为: -

ExpiresActive On
ExpiresDefault A0


# Set up caching on media files for 1 year (forever?)
<FilesMatch "\.(flv|ico|pdf|avi|mov|ppt|doc|mp3|wmv|wav)$">
ExpiresDefault A29030400
Header append Cache-Control "public"
</FilesMatch>

# Set up caching on media files for 1 week
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
ExpiresDefault A604800
Header append Cache-Control "public"
</FilesMatch>

# Set up 2 Hour caching on commonly updated files
<FilesMatch "\.(xml|txt|html|js|css)$">
ExpiresDefault A9200
Header append Cache-Control "proxy-revalidate"
</FilesMatch>

# Force no caching for dynamic files
<FilesMatch "\.(php|htm)$">
ExpiresActive Off
Header …
Run Code Online (Sandbox Code Playgroud)

apache .htaccess caching mod-expires mod-headers

24
推荐指数
1
解决办法
5万
查看次数

如何检查apache中启用的mod_headers和mod_expires模块

我想检查我的服务器中是否启用了mod_headers和mod_expires模块

是否有一种方法可以使用某些php函数列出apache启用/禁用模块,就像我们使用phpinfo()列出php信息一样; 功能?

apache apache-config mod-expires phpinfo mod-headers

22
推荐指数
4
解决办法
7万
查看次数

在Apache httpd中为每个Set-Cookie响应添加Secure和httpOnly标志

我正在运行Apache 2.2.26:

Server version: Apache/2.2.26 (Unix)
Server built:   Jan 17 2014 12:24:49
Cpanel::Easy::Apache v3.22.30 rev9999 +cloudlinux
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用mod_headers来编辑Set-Cookie标头并添加安全或httpOnly标志,但它根本不起作用(什么都不做,不会给出HTTP 500错误).

我可以使用"修改""附加",Header命令的指令没有问题,只是没有编辑.我不知道为什么...

我尝试了很多组合,但这就是我在.htaccess中所拥有的:

Header edit Set-Cookie "(.)([Hh][Tt][Tt][Pp][Oo][Nn][Ll][Yy])?(.)" "$1$2 ;HTTPOnly"
Header edit Set-Cookie "(.)([Ss][Ee][Cc][Uu][Rr][Ee])?(.)" "$1$2 ;Secure"
Run Code Online (Sandbox Code Playgroud)

我愿意接受任何自动将标志添加到每个Set-Cookie响应的解决方案,而无需在应用程序中编辑代码.我无权在Web服务器上安装其他项目,但Web服务器具有在大多数Web主机上找到的标准的很长的Apache模块列表.

security cookies .htaccess httponly mod-headers

15
推荐指数
4
解决办法
5万
查看次数

有没有办法删除apaches反向代理请求标头?

当充当反向代理时,apache会添加x-forwarded标头,如此处所述.

http://httpd.apache.org/docs/2.2/mod/mod_proxy.html#x-headers

在我的配置中,我已将服务器A配置为转发代理.有一个这样的规则:

RewriteRule proxy:(.*example.com)/(.*) $1.mysecondserver.com/$2 [P]
Run Code Online (Sandbox Code Playgroud)

此规则允许服务器从我的其他服务器请求资源.

在第二个服务器(原始)上,我有一个资源的虚拟主机容器和另一个重写规则,如下所示:

RewriteRule some-regex some-url [P]
Run Code Online (Sandbox Code Playgroud)

它似乎没有这样的意义,但是我遗漏了许多其他的东西,因为它不是问题的一部分.

但是,最终请求具有以下标头:

[X-Forwarded-For] => ip of 1st server
[X-Forwarded-Host] => example.myseconserver.com
[X-Forwarded-Server] => example.com
Run Code Online (Sandbox Code Playgroud)

我想要那些标题消失了.

我似乎无法用mod_headers取消它们.我可以添加更多条目,但我无法删除它们

有任何想法吗?

apache mod-rewrite apache2 mod-proxy mod-headers

13
推荐指数
1
解决办法
1万
查看次数

有条件地在apache中设置缓存头

我想根据访问的路径文件有条件地设置缓存头.基本上,访问http://www.example.com/cache/$cache_key/*应该在将来的缓存头中提供远远的文件.

我正在使用重写规则来设置环境变量,然后尝试根据该变量设置缓存控制标头.但是,看起来这个变量在这个过程中设置的时间太晚了; 条件头规则永远不会被执行.

RewriteRule ^cache/.*?/(.*) /$1 [env=asset:true,L]
Header set Cache-control "max-age=30"
Header set Cache-Control "max-age=31536000" env=asset
Header unset ETag env=asset
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我尝试了目录和位置块的几种组合但没有成功.

apache mod-rewrite caching mod-headers

12
推荐指数
1
解决办法
7092
查看次数

是否可以有条件地设置标题?

如果http_referer来自谷歌(.com/.ru/.co.uk/english/etc.等),我想htaccess执行以下代码.这可能吗?

<filesMatch ".(jpg|jpeg|png|gif)$">
FileETag None
<ifModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</ifModule>
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

apache .htaccess cache-control mod-headers

12
推荐指数
2
解决办法
2万
查看次数

有条件地设置Apache标头

我正在使用apache服务器,我想有条件地添加标头.

如果URI匹配某个正则表达式,我想添加标题Access-Control-Allow-Origin: *.有什么好办法呢?

到目前为止我尝试过的:

  1. 我添加了请求处理程序调用的代码,使用apr_table_add(rq->headers_out, "Access-Control-Allow-Origin", "*").但是,每当标头Content-Type: application/x-javascript也被设置时,似乎Apache在发送响应之前剥离了标头.这是错误的方法吗?为什么Apache会删除标题?

  2. 我听说mod_headers建议了.mod_headers是否能够根据与请求URI匹配的正则表达式放置标头?

apache http-headers cors mod-headers

11
推荐指数
2
解决办法
1万
查看次数

apache如何动态使用"Header set Set-Cookie expires = <date>"

我使用apache作为负载均衡器和反向代理.对于会话粘性,我正在创建一个包含节点路径的cookie.

Header set Set-Cookie "h=.%{BALANCER_WORKER_ROUTE}e; path=/; domain=.domain.com" env=BALANCER_ROUTE_CHANGED
Run Code Online (Sandbox Code Playgroud)

如何expires将cookie中的值设置为从请求进入后X分钟?

mod_headers的文档甚至Set-Cookie没有详细介绍,因此没有动态语法的信息expires.

我尝试设置max-age但不幸的是max-age不适用于IE 11,我们的很多客户都使用它.

mod_rewrite cookie的文档确实涵盖了如何在cookie中设置生命周期,所以我可以使用这个丑陋的mod_rewrite hack来使用它,但我必须为每个路由做一个规则,因为它在我的<Proxy balancer://my_cluster>部分中不起作用:

RewriteCond %{HTTP_COOKIE} h=.1 [NC]
RewriteRule . -  [CO=h:.1:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.2 [NC]
RewriteRule . -  [CO=h:.2:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.3 [NC]
RewriteRule . -  [CO=h:.3:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.4 [NC]
RewriteRule . -  [CO=h:.4:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.5 [NC]
RewriteRule . -  [CO=h:.5:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} h=.6 [NC]
RewriteRule . -  [CO=h:.6:.domain.com:30:/]
RewriteCond %{HTTP_COOKIE} …
Run Code Online (Sandbox Code Playgroud)

apache cookies mod-rewrite mod-headers

11
推荐指数
1
解决办法
3154
查看次数

apache2 mod_headers无效

问题描述:我想将我的网站设置为"Access-Control-Allow-Origin",所以我将它设置在apache的配置中(几乎在任何地方),但它不起作用.我还设置了其他标题进行测试,但它仍然无法正常工作.

Apache版本: 2.2.22

Apache模块: http ://www.anwcl.com/test/show_modules.php

我的目标网址:

http://www.anwcl.com/test/test_only_div.html
Run Code Online (Sandbox Code Playgroud)

它链接到我的本地文件:

e:\wamp\www\test\test_only_div.html
Run Code Online (Sandbox Code Playgroud)

这是我的apache的配置:

E:\ WAMP\BIN\apache的\ apache2.2.22 \的conf\httpd.conf文件

...
LoadModule headers_module modules/mod_headers.so
...
Include conf/extra/httpd-vhosts.conf
...
Run Code Online (Sandbox Code Playgroud)

E:\ WAMP\BIN\apache的\ apache2.2.22 \的conf \额外\的httpd-vhosts.conf

NameVirtualHost *:80
<VirtualHost *:80>
    Header add Access-Control-Allow-Origin "*"
    Header echo ^TS
    Header add MyHeader "Hello Joe. It took %D microseconds for Apache to serve this request."
    ServerAdmin xxx@gmail.com
    DocumentRoot "E:/wamp/www/"
    ServerName www.anwcl.com
    ErrorLog "logs/xxx.log"
    CustomLog "logs/xxx.log" common
    <Directory "E:/wamp/www/">
        Header add Access-Control-Allow-Origin "*"
        Options Indexes FollowSymLinks
        AllowOverride All
        Order allow,deny …
Run Code Online (Sandbox Code Playgroud)

apache mod-headers

8
推荐指数
1
解决办法
7704
查看次数