我需要配置我的服务器以允许 http 删除方法。目前,当我尝试拨打此电话时出现以下错误:
HTTP/1.1 405 Method Not Allowed
Date: Mon, 11 Apr 2011 20:56:23 GMT
Server: Apache/2.2.17 (Win32) PHP/5.3.5
Allow: GET,HEAD,POST,OPTIONS,TRACE
Content-Length: 233
Keep-Alive: timeout=5, max=98
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
Run Code Online (Sandbox Code Playgroud)
我已经进行了广泛的搜索,但无法找到有关如何配置服务器以允许此请求的答案。有人请帮忙,因为它阻止了我的项目。
在运行 varnish 的 apache 2.2 服务器上,我试图将 http -> 重定向到整个 Drupal Commons ( http://commons.acquia.com/ ) 站点的https 。
由于 varnish 缓存了一些重定向(我认为是 R=301,但不是 R=302),我首先让重定向在 :8080 工作,而 varnish 不提供该重定向。
下面的 .htaccess 代码成功地将 http://foo.example.com:8080 重定向到 https://foo.example.com。(适用于 Chrome、FF 和 Safari。)
# RewriteBase /
### Standard Drupal7 .htaccess above here ###
# SSL REWRITES
RewriteCond %{SERVER_PORT} ^8080$
RewriteRule ^(.*)$ https://foo.example.com/$1 [NC,R=302,L]
### Standard Drupal7 .htaccess below here ###
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} …Run Code Online (Sandbox Code Playgroud) 请原谅我缺乏 IIS 经验,但我在运行 IIS 和 Plesk 的托管服务器上有一个用户。他使用受保护的文件夹,我正在寻找一种方法:
它不必——而且最好不是——仅适用于 Plesk 的解决方案。如果有办法通过 web.config 做到这一点,那就更好了。
我基本上是在寻找相当于 Apache htaccess/htpasswd auth 的 IIS :)
谢谢!
我使用 Squid 来修改客户端发送的一些 HTTP 标头。出于测试目的,我想完全删除“User-Agent”标头。
这是我的配置:
request_header_access User-Agent deny all
header_replace User-Agent Timmy
logformat mylogformat %>a [%{%H:%M}tl] "%rm %ru HTTP/%rv" %>Hs "Accept:%{Accept}>ha User-Agent:%{User-Agent}>ha" {%Ss:%Sh}
Run Code Online (Sandbox Code Playgroud)
我使用语法 '>ha' 来记录“适配和重定向后的 HTTP 请求标头”,正如这里所说的http://www.squid-cache.org/Versions/v3/3.1/cfgman/logformat.html
不幸的是,根据我的日志文件 access.log,标题没有被修改:
x.x.x.x [19:18] "GET http://example.org/favicon.ico HTTP/1.1" 404 "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 User-Agent:Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.2) Gecko/20100101 Firefox/10.0.2" {TCP_MISS:DIRECT}`
Run Code Online (Sandbox Code Playgroud)
但是,当通过代理向我的 Nginx 服务器发出请求时,Nginx 有效地正确记录了此标头:
[06/Mar/2012:19:18:07 +0100] "GET /sites/all/modules/colorbox/styles/default/images/controls.png HTTP/1.1" 200 2104 "http://example.org/sites/default/files/css/css_zpYGaC6A9wUNMpW3IPg55mz-mMAjvhuo-SZTcX-lqFQ.css" "Timmy"
Run Code Online (Sandbox Code Playgroud)
在鱿鱼日志文件上记录正确修改的 HTTP 标头、重写的 url 等的正确语法是什么?
我的鱿鱼版本是 2.7.STABLE9,它在 Debian SQueeze 64 位上运行。
谢谢你的帮助
我认为我所要求的有点难以理解,所以,我试图让它更简单......
当我的服务器收到带有格式错误的主机标头的请求时,我需要它有一个自定义的 400 错误页面。
我理想中想要的是 ErrorDocument 400 \somepage.php
我可以通过访问诸如 之类的页面来生成 400 个错误http:\\myserver\bla%bla,这将很好地转到我的脚本中。同样,我可以将该\somepage.php部分更改为Test textApache 将返回该文本。
但是,如果 400 错误是由格式错误的主机标头引起的,它将适用于文本而不是网页。
任何人都可以对此有所了解并在我松开所有头发之前提供可行的解决方案吗?!(已经为此失去了很多!)。
我有一个 HTTP 服务器,它只提供两种页面:大约 10 KB 和大约 16 KB(都是压缩的,其他文件来自 CDN)。由于延迟非常高(ping需要超过 300 毫秒),我想优化 TCP 堆栈,以便客户端尽快接收整个页面。
因此,我有一个双重问题:
我有一个应用程序使用 HTTP 连接到服务器,但不支持使用 HTTP 代理,我必须使用 HTTP 代理才能访问服务器。
我想设置一个可以通过常规代理服务器的反向代理服务(它在 Linux 服务器上)。
所以:
App --> Reverse Proxy ----------> Forward Proxy -------------> Server
|====Localhost=======| Net |=Somewhere=| Net |=Somewhere Else=|
Run Code Online (Sandbox Code Playgroud)
我看过几个轻量级反向代理,但它们不支持通过代理服务器转发。我不想运行像apache或squid这样的重磅东西,但如果它们是唯一可以工作的东西,它们就会做。(虽然来自 apaches 文档,但它看起来也不行。)
有什么建议?
我已经用 PHP 编写了一个在 Apache 下运行的 IPP 服务器。使用标准的 IPP 客户端,它工作得很好。但是当我尝试从 iOS 设备打印时,当客户端尝试切换到 TLS 时,连接会中断。这似乎由 RFC 2817(在 HTTP/1.1 中升级到 TLS)涵盖,并且应该由 Apache 支持多年。我的 Apache 配置有什么问题?
Apache SSL 配置:
SSLEngine optional
SSLCertificateFile /path/to/server.crt
SSLCertificateKeyFile /path/to/server.key
Run Code Online (Sandbox Code Playgroud)
要求:
OPTIONS * HTTP/1.1
Connection: Upgrade
Host: iserv.local
Upgrade: TLS/1.0,SSL/2.0,SSL/3.0
User-Agent: CUPS/1.5.0
Run Code Online (Sandbox Code Playgroud)
回复:
HTTP/1.1 200 OK
Server: Apache/2.2.16
Content-Length: 0
Content-Type: text/plain
Run Code Online (Sandbox Code Playgroud)
预期回复:
HTTP/1.1 101 Switching Protocol
Server: CUPS/1.4
Connection: Keep-Alive
Keep-Alive: timeout=30
Connection: Upgrade
Upgrade: TLS/1.0,HTTP/1.1
Content-Length: 0
Run Code Online (Sandbox Code Playgroud) 我正在尝试使 BOSH 会话的预绑定工作。
我希望能够在我的 CMS 中对用户进行身份验证,然后在他访问聊天时让他登录,为此我找到了https://github.com/smokeclouds/http_prebind,一切都可以找到并且我能够编译它步骤如下:
rake configure
sed -i 's/AUTH_USER/a_user/g' src/http_prebind.erl
sed -i 's/AUTH_PASSWORD/a_password/g' src/http_prebind.erl
sed -i 's/EJABBERD_DOMAIN/jabber.my.tld/g' src/http_prebind.erl
rake build
rake install
Run Code Online (Sandbox Code Playgroud)
然后将 http 请求绑定添加到配置中:
{5280, ejabberd_http, [
{request_handlers,
[
{["http-prebind"], http_prebind}
]},
%%captcha,
http_bind,
http_poll,
http_prebind,
web_admin
]}
]}.
Run Code Online (Sandbox Code Playgroud)
据我所知,我现在应该能够简单地请求一个新的会话:
curl -u a_user:a_password http://jabber.my.tld:5280/http-prebind/some_user
Run Code Online (Sandbox Code Playgroud)
但无论我总是得到什么Unauthorized回应。
对这个有什么想法吗?
PS:我也尝试过 Mod-Http-Pre-Bind,但由于它不需要密码,我更喜欢使用 http_prebind。
PPS:用户名 AUTH_USER 和密码 AUTH_PASSWORD 的用户实际上必须存在吗?我目前正在使用管理员帐户。
更新:
一些 Wireshark 日志
1 0.000000000 HonHaiPr_0b:36:ae D-LinkIn_64:ca:28 ARP 42 Who has 192.168.0.1? Tell 192.168.0.102
2 0.001844000 D-LinkIn_64:ca:28 HonHaiPr_0b:36:ae ARP 42 192.168.0.1 is at 28:10:7b:64:ca:28
Run Code Online (Sandbox Code Playgroud)
适用于 XP,太糟糕了 PHP 正在放弃支持。
问题:我应该把路由器扔出窗外吗?我不能责怪Windows(在我内心深处我想)
我在 Windows7 上使用 Apache 时遇到(几乎)随机连接超时,以至于我害怕命中F5......我无法解释它何时发生,因为我无法找到模式。

给我带来麻烦的电脑是马里奥想砸的电脑。这是有趣的部分,它不能从另一台Windows计算机访问(当超时发生时),但它可以从Linux计算机访问。出现超时消息后(大约 30 秒后),它通常会再次工作,如果没有,我必须重新启动 Apache。它们以无线方式连接到便宜的 D-Link 路由器,然后通过电缆连接。
当一切正常时:
当它不是:
http://192.168.0.111)访问http ×10
apache-2.2 ×5
.htaccess ×1
400 ×1
debian ×1
ejabberd ×1
http-headers ×1
https ×1
iis ×1
linux ×1
optimization ×1
proxy ×1
rewrite ×1
squid ×1
ssl ×1
tcp ×1
timeout ×1
tls ×1
web-server ×1
web.config ×1
windows ×1
xmpp ×1