我需要能够在某个模式的位置响应标头中测试URL字符串,如果匹配则将其替换为另一个模式.
例如,如果响应是位置:http://wrongserver.com我需要将其更改为位置:http://rightserver.com
似乎mod_setenvif仅对请求标头进行操作,因此我无法将其与"标头集"指令相结合以实现我想要的目标.
内容未被代理,因此使用mod_proxy指令似乎不是一个选项.
谢谢,伯尼
我启用mod_headers并mod_rewrite在我的http.config中删除#from行.
LoadModule headers_module modules/mod_headers.so
LoadModule rewrite_module modules/mod_rewrite.so
Run Code Online (Sandbox Code Playgroud)
我需要启用更多的东西或错误是.htaccess?
的.htaccess.
RewriteEngine On
RewriteRule ^(.*?)\.x$ /$1.php [L]
<IfModule mod_headers.c>
<filesMatch "\.(x)$">
Header set foo "baa"
</filesMatch>
</IfModule>
Run Code Online (Sandbox Code Playgroud)
提前致谢!
出于CDN失效的目的,我需要在站点URL的路径元素中添加前缀.每当发布新版本的资产时,都会更改此信息.
然后使用mod_rewrite将URL重写为:http://example.com/cdn/20111030/images/image.jpg到http://example.com/images/image.jpg,这是资产实际所在的位置.
我想在响应中添加长期到期标题(至少3个月)(对于文件系统中实际不存在的第一个URL).有谁知道如何做到这一点?
我终于得到了一个VPS主机帐户设置,这允许我使用mod_deflate和mod_header(当然).我试图通过YSlow的指导方针使我的网站更快,其中包括gzipping(通过mod_deflate)页面和设置一个长期过期标题.
这个.htaccess代码会是什么样的?我已经看过各种例子,但我想知道适合这些参数会是什么样子.
例如
# Mod_deflate
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|iso|tar|bz2|sit|rar|png|jpg|gif|jpeg|flv|swf)$ no-gzip dont-vary
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.[0678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
Header append Vary User-Agent env=!dont-vary
</IfModule>
Run Code Online (Sandbox Code Playgroud) 这个页面说明了这个:
如果响应包括Expires头和max-age指令,则max-age指令会覆盖Expires头,即使Expires头更具限制性
似乎mod_expires和mod_headers都在我的服务器中处于活动状态.
哪一个更可取,你能评论每个人的优势吗?
谢谢.
我正在尝试使用mod_header在Apache(2.2)中设置两个cookie,如下所示:
Header set Set-Cookie "poodle=noodle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Header set Set-Cookie "tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Run Code Online (Sandbox Code Playgroud)
但只有最后一个cookie被发送到浏览器.我已经做了一些搜索,但只发现有这个问题的人没有解决方案.我尝试将它们组合成一个:
Header set Set-Cookie "poodle=noodle;tweedle=puddle;path=/;Secure;HttpOnly;Expires=Wed, Jan 01 2020 2:02:02 GMT"
Run Code Online (Sandbox Code Playgroud)
同样的问题.我需要使用"Header append"吗?任何例子将不胜感激.
这个.htaccess文件:
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault "access plus 4 month"
</IfModule>
<IfModule mod_headers.c>
Header merge X-ModHeaders "Yes, it is installed"
</IfModule>
Run Code Online (Sandbox Code Playgroud)
...在我的开发框(Windows框,Apache/2.4.10,PHP作为Apache模块运行)中按预期工作,其中“有效”意味着它为所有资源(静态或动态)生成适当的标头。
但是,在我的生产服务器(Linux 机器,Apache/2.2.31,PHP 作为 FastCGI 与 mod_fcgid/2.3.9 运行)中,它仅适用于静态资产,不适用于 PHP 脚本。
我怀疑差异来自 PHP SAPI 是否正确?有没有办法修复它,这样我就不需要复制生成 HTTP 标头的代码?
我目前的.htaccess文件列出了数十个域,以便从我的服务器启用 CORS。
我在下面缩短了示例,但所有域名都是相似的,域名中唯一更改的部分是 www 后面的 1 或 2 位数字。
<IfModule mod_headers.c>
SetEnvIf Origin "http(s)?://(www48.example.com||www47.example.com)$" AccessControlAllowOrigin=$0
Header add Access-Control-Allow-Origin %{AccessControlAllowOrigin}e env=AccessControlAllowOrigin
Header merge Vary Origin
</IfModule>
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中我启用了 CORS
https://www48.example.com
https://www47.example.com
Run Code Online (Sandbox Code Playgroud)
我想要一种更简单的方法来启用具有相似名称的 99 个域的列表。因此,除了“www”后面的数字 1 到 99 之外,所有域名都是相同的,如何在不单独列出所有 99 个域名的情况下实现这一目标?
https://www1.example.com
https://www2.example.com
....
https://www10.example.com
....
https://www40.example.com
....
https://www70.example.com
....
https://www99.example.com
Run Code Online (Sandbox Code Playgroud) 我想使用自定义重写映射处理请求标头。
因此,我想在环境变量中包含标头的内容。
我还没有找到用 mod_headers 和/或 mod_rewrite 做到这一点的方法。
任何帮助是appriciated。
因此,我试图让siteA在siteB上执行jquery .load某些内容。在执行此操作时,我收到了Access-Control-Allow-Origin错误。因此,在siteB上,我放置了一个.htaccess文件,该文件应允许siteA能够从中获取内容。我为此遇到了一些麻烦。我知道正在访问.htaccess文件,因为当页面尝试加载并且.htaccess文件中有内容时,它会收到500内部错误。
在.htaccess文件中,我尝试过:Access-Control-Allow-Origin:*和:Access-Control-Allow-Origin:“ *”
但都给出500错误。我也尝试过:Access-Control-Allow-Origin:*
这不会产生500错误,因此它必须返回为false。我现在不确定该怎么做。它可能是我格式化.htaccess文件错误或其他原因,但我认为可能与未启用mod_headers有关。
在日志中:无效命令“ Access-Control-Allow-Origin:”,可能是拼写错误或由服务器配置中未包含的模块定义的
这两个站点都通过10.8 Server.app运行,因此它与正常的Apache安装略有不同,这使其变得有些困难。任何帮助将不胜感激!提前致谢!
mod-headers ×10
apache ×9
mod-expires ×3
.htaccess ×2
mod-rewrite ×2
php ×2
apache2 ×1
cdn ×1
cookies ×1
header ×1
http-headers ×1
mod-deflate ×1
mod-fcgid ×1
optimization ×1
regex ×1
response ×1
yslow ×1