Tag: 阿帕奇

Apache的mod_rewrite不工作或未启用

我已经在Apache上安装了rewrite_module并修改了php.ini 。 我创build了rewrite.php和.htaccess文件,但它不工作。 我的文件系统文件夹如: /var/www/html /var/www/html/test /var/www/html/test/.htaccess /var/www/html/test/rewrite.php /var/www/html/.htaccess的内容是: $ cat /var/www/html/test/.htaccess RewriteEngine On RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L] /var/www/html/rewrite.php $ cat /var/www/html/test/rewrite.php <html> <h2 align=center> <?php // mod_rewrite Test Page // Copyright 2006 Webune.com if($_GET['link']==1){echo"You are not using mod_rewrite";} elseif($_GET['link']==2){echo"Congratulations!! You are using Apache mod_rewrite";} else{echo"Linux Apache mod_rewrte Test Tutorial";} ?> </h2> <hr> <head> <title>How […]

mod_rewrite规则redirect除一个特定path以外的所有请求

我试图在Apache 2.2 VirtualHost声明中使用mod_rewrite将所有请求redirect到我的域到另一个域。 有一个例外 – 我想所有的请求/audiopath不被redirect。 我已经写了一个RewriteCond和RewriteRule来做到这一点,但它不是很正确,我不明白为什么。 正则expression式包含对string“/ audio”的负面预测,但由于某些原因,这不匹配。 定义如下: RewriteEngine on RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.net(?!/audio) [NC] RewriteRule ^(.*)$ http://www.newdomain.net [L,R=301] 如果我将RewriteCond更改为: RewriteCond %{HTTP_HOST} ^(.*\.)?mydomain\.net/(?!audio) [NC] (即把正斜杠放在负向视图部分之外),那么它就可以工作,但是这样做的缺点就是没有斜线的mydomain.net的请求将不会被redirect。 任何人都可以指出我做错了什么? (注意:上面的RewriteRule位域中的尖括号正在被StackOverflow.com添加 – 它们在实际的代码中不存在!) 这是规则: <VirtualHost *:80> ServerAdmin me@mydomain.net DocumentRoot "/var/www/mydomain.net/htdocs" ServerName www.mydomain.net ServerAlias mydomain.net RewriteEngine on RewriteCond {REQUEST_URI} !^/audio RewriteRule ^(.*)$ http://www.newdomain.net [L,R=301] RewriteLog logs/mod_rewrite_log RewriteLogLevel 3 ErrorLog […]

为什么我得到一个Apache Proxy 503错误?

直到昨天,我的服务器一直很好。 它正在运行Redmine ,它是最快乐的servlets器, 直到我的“朋友”导入了一个我的小家伙不能拿的SQL表。 不幸的是,经过一个小时的努力,我们不得不重新启动他。 现在重新启动后,尝试访问连接到Redmine的域时会出现503错误。 它连接到一个Mongrel守护进程,我们使用Apache Proxy将所有连接指向Redmine正在运行的端口。 在服务器上使用Lynx( http://localhost:8000 ),你可以看到Ruby应用程序正常工作。 但是这个位在我的Apacheconfiguration文件中不起作用: <VirtualHost *:80> ServerName sub.example.com ProxyPass / http://localhost:8000 ProxyPassReverse / http://localhost:8000 ProxyPreserveHost on LogLevel debug </VirtualHost> 以下是Apache的错误日志输出: [debug] mod_proxy_http.c(54):proxy:HTTP:canonicalising URL // localhost:8000 [debug] proxy_util.c(1335):[client 216.27.137.51] proxy:http:found http:// localhost:8000 worker http:// localhost:8000 / [debug] mod_proxy.c(756):运行schemehttp处理程序(尝试0) [debug] mod_proxy_http.c(1687):proxy:HTTP:服务URL http:// localhost:8000 / [debug] proxy_util.c(1755):proxy:HTTP:已经获得连接(localhost) [debug] proxy_util.c(1815):proxy:连接http:// localhost:8000 […]

httpd服务器未启动:(13)权限被拒绝:make_sock:无法绑定到地址:88

我试图在centos 6上启动httpd服务器。它抛出以下错误: [root@machine ~]# service httpd start Starting httpd: (13)Permission denied: make_sock: could not bind to address [::]:88 (13)Permission denied: make_sock: could not bind to address 0.0.0.0:88 no listening sockets available, shutting down Unable to open logs [FAILED] 我也检查了88端口,这是不是使用。 我也用semanage检查,但没有帮助。 任何帮助将不胜感激。

如何在apache的httpd.conf文件中定义一个variables?

我想在Apache服务器的httpd.confconfiguration文件中定义一个variables。 例如:variablesstatic_path = C:\codebase\snp_static 我想在httpd.conf中使用这个variables(static_path)。 请告诉我如何在httpd.conf文件中定义一个variables?

mod_rewrite urlencoding已经urlencoded查询string参数 – 任何方式来禁用此?

我们有一些非常基本的mod_rewrite规则: RewriteRule ^something.swf$ http://www.newdomain.com/something.swf [R=302,L] mod_rewrite似乎做了它的工作,如果用户正在访问: something.swf?param=value ,它被正确地redirect到http://www.newdomain.com/something.swf?param=value 问题在于这种情况: www.olddomain.com/something.swf?param=URL_ENCODED_VALUE 最后发生的是mod_rewrite将其自身重新编码查询string参数 所以用户最终得到的是: www.olddomain.com/something.swf?param=URL_ENCODED_VALUE redirect到 www.newdomain.com/something.swf?param=URL_ENCODED_VALUE_OF_URL_ENCODED_VALUE 所以我们结束了一个双重urlencoded值。 boourns! 虽然我明白我们可以做一个\?(.*) … ?$1规则,我想一定有办法告诉mod_rewrite不urlencode查询string参数…我们想避免使用2条规则,因为有效的path是: something.swf (no query string) 和 something.swf?someparams… 所以是的,理想情况下…只是告诉mod_rewrite:请不要查询string参数的urlencoding …只是通过R=302直接passthru到新的URL。

如何在没有访问命令行的情况下find运行Apache的版本?

我需要find一个文件,其中的版本是编码或通过networking轮询它的方式,所以它显示其版本。 虽然我可以通过FTP浏览安装位置,但服务器运行在不提供命令行访问权限的主机上。 我试过HEAD,没有得到报告的版本号。 如果我尝试一个缺less的页面来获取404,它将被截取,并且返回没有服务器信息的库存页面。 我想这点指向服务器正在硬化。 仍然没有更接近… 我build议把一个PHP文件,但我不能浏览到它,不能完全找出将加载它的URLpath。 在任何情况下,我得到了大量的访问被拒绝的消息和相同的股票404页面。 我知道该服务器是相当强大的保护,我感到舒适。

index.php默认不加载

我刚刚安装了CentOS,Apache和PHP。 当我访问我的网站http://example.com/myapp/时 ,它说“禁止”。 默认情况下,它不会加载index.php文件。 当我访问http://example.com/myapp/index.php时 ,它工作正常。 任何想法如何解决这个问题?

Apache:“AuthType未设置!”500错误

我使用Apache httpd web服务器已经有一段时间了。 我为一个项目启动本地服务器,当我尝试请求localhost / index.html,我得到一个500错误,我在错误日志中看到: [Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error: couldn't perform authentication. AuthType not set!: /index.html [Tue Jan 21 09:23:58 2014] [error] an unknown filter was not added: DEFLATE [Tue Jan 21 09:23:58 2014] [crit] [client ::1] configuration error: couldn't perform authentication. AuthType not set!: /favicon.ico 看起来在Apacheconfiguration中可能有2个错误,一个与“AuthType not […]

Apache Prefork vs Worker MPM

查看Apacheconfiguration文件,我看到了Prefork和Worker MPM的定义。 有什么区别,哪一个是Apache使用?