操作系统 :Ubuntu 14.04 Apache: 2.4.12(使用PPA) – mod_expires,mod_headers 我对所有的SVG文件都使用GZIP。 它在configuration文件(不是.htaccess) AddType image/svg+xml .svg AddOutputFilterByType DEFLATE image/svg+xml 但是,按F5,浏览器将向服务器请求文件返回200状态码,而不是返回预期的304状态码。 如果我删除了AddOutputFilterByType,那么服务器返回304,但内容不是GZIPped。 这里有一些原始的请求标题 NO GZIP(200状态码) Accept-Ranges: bytes Cache-Control: max-age=2592000 Connection: Keep-Alive Content-Length: 689 Content-Type: image/svg+xml Date: Thu, 02 Jul 2015 10:41:09 GMT Etag: "2b1-5157f331b2480" Expires: Sat, 01 Aug 2015 10:41:09 GMT Keep-Alive: timeout=5, max=80 Last-Modified: Thu, 07 May 2015 15:02:26 […]
我有一个静态的HTML网站,由Apache 2.4使用SSI服务。 我一直在使用基本身份validation来控制对文件子集的访问,并且已经停止了预期的行为。 基本上我想要做的就是要求网站的某些部分的用户名/密码。 我已经包含了我认为是相关的configuration,更改了一些名称以保护隐私。 /etc/apache2/sites-enabled/example.conf <VirtualHost *:80> ServerName site.example.com:80 ServerAdmin webmaster@localhost DocumentRoot /var/www/site <Directory /var/www/site/> Options Includes Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory> ErrorLog /var/log/apache2/error.log </VirtualHost> /var/www/site/.htaccess AuthType Basic AuthName "Site Access Control" AuthBasicProvider file AuthUserFile /var/www/site/passwords /var/www/site/dir1/dir2/protected-dir/.htaccess require valid-user 据我了解,我已经configuration了我的虚拟主机的网站目录。 在顶层目录中,我configuration了基本authentication。 在那些我希望控制访问的目录中,我需要一个有效的用户。 .htaccess文件应该相应地组合。 当我浏览到: site.example.com/dir1/dir2/protected-dir 我被授予访问该页面,其内容是可见的。 这不是我所期望的。 在Apache2错误日志中,我得到以下内容: [Sat Jul […]
所以我试图让Apache 2.4与在10.x的freebsd框上运行的活动目录交谈 从端口build立的Apache …随着LDAP打开…. 2.4.12 Windows 2012 R2的活动目录….我检查了LDAP默认的域控制器GPO不需要SSL。 我已经确认在ADSIEditconfiguration中列出的组名,并检出了我正在连接的用户…. 这里是configuration示例: vhosts.conf <VirtualHost 10.1.1.10:80> ServerAdmin [email protected] ServerName hg.domainname.com ServerAlias www.hg.domainname.com ScriptAlias /hg /usr/local/www/mercurial/hgweb.cgi ErrorLog "/var/log/hg-http-error.log" CustomLog "/var/log/hg-http-access.log" common <Location /hg> Options Indexes ExecCGI FollowSymlinks AddHandler cgi-script .cgi .fcgi AllowOverride All Order allow,deny Allow from all #Rem'd part of initial no auth testing #Require all granted AuthType […]
我无法在Windows 7上的Apache 2.4.12 32位上设置虚拟主机。我可以在以前的版本中执行此操作,但是现在即使按照官方说明,我也无法正确设置虚拟主机。 我试图设置2个虚拟主机,一个用于端口8080 ,另一个用于端口8081 。 我没有一个“主”服务器,只有2个虚拟主机设置。 本地,一切工作正常。 我可以在127.0.0.1:8080和127.0.0.1/8081访问它们,但是当我使用my Public IP:8080和my Public IP:8081 ,只有端口8080上的虚拟主机正在工作。 8081端口中的一个没有被我的公共IP加载,虽然它与我的本地IP一起工作。 这是我的httpd-vhosts.conf: <VirtualHost *:8080> ServerAdmin admin@vhosts DocumentRoot "${SRVROOT}/htdocs/vhost1" ServerName localhost ErrorLog "logs/vhost1-error.log" </VirtualHost> <Directory "${SRVROOT}/htdocs/vhost1"> Options None AllowOverride None Require all granted </Directory> <VirtualHost *:8081> ServerAdmin admin@vhosts DocumentRoot "${SRVROOT}/htdocs/vhost2" ServerName localhost ErrorLog "logs/vhost2-error.log" </VirtualHost> <Directory "${SRVROOT}/htdocs/vhost2"> Options None AllowOverride None […]
我有一个基于Plone的站点,运行在Apache 2.4后面,可能会更好一些。 一个想法是让Apache服务于内容的静态部分,防止它们被重写为Plone进程,就像通常做的那样: RewriteEngine On RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/%{HTTP_HOST}:80/Plone/VirtualHostRoot/$1 [L,P 那些静态内容并不在同一个地方。 但是Plone提供了一个标准的资源目录命名方式, 例如,我的产品的“浏览器” mybrowser可以有一个文件系统目录static : /my/plone/root/Products/myproduct/mybrowser/static/ 它将作为/++resource++mybrowser-static 。 让Plone提供静态文件没有太大意义,所以我想阻止某些请求被重写,而是直接提供服务。 这是我试过的: # in Plone: /++resource++mybrowser-static <Directory /my/plone/root/Products/myproduct/mybrowser/static> Options All AllowOverride All Require all granted </Directory> Alias /static /my/plone/root/Products/myproduct/mybrowser/static Alias /++resource++mybrowser-static /my/plone/root/Products/myproduct/mybrowser/static LogLevel alert rewrite:trace3 alias:trace3 … RewriteCond %{REQUEST_URI} !^/++resource++mybrowser-static RewriteCond %{REQUEST_URI} !^/static/ RewriteRule ^/(.*) http://localhost:8080/VirtualHostBase/http/%{HTTP_HOST}:80/Plone/VirtualHostRoot/$1 [L,P] 因此,我目前有两个别名, […]
我使用PayPal在我的服务器上设置了第三方购物车进行付款。 当用户完成交易时,他们被redirect到https://example.com/?target=payment%255freturn&txn_id_name=txnId… 正确的URL应该包括target=payment_return或target=payment%5freturn 。 这些URL可以正常工作,向客户提供发票,但PayPalredirect到的URL是URL编码的两次,因此给客户一个404错误。 我不能改变应用程序的逻辑来接受两次转义的URL,所以我一直在尝试设置一个redirect来纠正它。 我已经尝试了以下使用mod_alias或mod_rewrite的众多变体: RedirectMatch permanent (?i)^/\?target=payment%255freturn(.*) /target=payment_return$1 RewriteRule ^/\?target=payment%255freturn(.*) /target=payment_return$1 [NE] 我已经尝试了%255f,%5f和_的变体,而且我尝试了使用和不使用NE标志。 我怎样才能让用户redirect到正确的URL?
有没有办法“解开”一个任意的Apache指令,比如通过逐字重复,而是用Unset或前面的东西来Unset呢? 举例来说,在服务器configuration级别上我有: ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1" 在虚拟主机之一,我希望能够像下面这样: Unset ScriptAliasMatch "^/cgi-bin(.*)" "/usr/local/apache/cgi-bin$1" 如果这个指令有一个特定的方法,那么我对这个指令很感兴趣(我能想到的最好的方法就是通过mod_rewrite来阻止对这个模式的访问),但是我特别感兴趣的是,一个方法来解决,因为这可能是方便了解未来。
Centos 7,Apache 2.4,TomCat 7.0.52,Java 1.7 我正在尝试使用HTTPSconfigurationApache来代理一个tomcat服务器(运行Jira / Confluence): (HTTPS:443) – > ApacheServer – >(HTTP:8090或HTTPS:8091)TomCat 目前HTTP代理工作完美,但我想获得HTTPS的工作。 我不介意Apache和Tomcat之间的连接是SSL(在同一台服务器上)。 当我访问https://confluence.company.co.uk/我得到/var/www/html/index.html而不是代理。 这里是tomcat的Server.xml: <Connector port="8090" connectionTimeout="20000" redirectPort="8443" maxThreads="200" minSpareThreads="10" enableLookups="false" acceptCount="10" debug="0" URIEncoding="UTF-8" /> <Connector port="8091" proxyPort="443" proxyName="confluence.company.co.uk" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" enableLookups="false" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" protocol="HTTP/1.1" redirectPort="8443" useBodyEncodingForURI="true" scheme="https" secure="true" /> 行从Apache的默认/etc/httpd/conf.d/ssl.conf中更改: ServerName confluence.company.co.uk:443 SSLCertificateFile /etc/pki/tls/certs/company.pem SSLCertificateKeyFile /etc/pki/tls/private/company.key Apache VHostconfiguration(在/etc/httpd/conf.d/proxy_vhost.conf中): […]
Laravel将正常呈现默认/根页面。 但不会呈现默认路由或错误页面。 我的网页浏览器将返回与Apache(不Laravel)错误页与我尝试和访问/testing 这里有一些信息(请让我知道如果你需要更多的细节) 服务器目录树 /var/www/ └── html ├── access.log ├── app ├── artisan ├── bootstrap ├── composer.json ├── composer.lock ├── config ├── database ├── error.log ├── gulpfile.js ├── package.json ├── phpspec.yml ├── phpunit.xml ├── public ├── readme.md ├── resources ├── server.php ├── storage ├── tests └── vendor 视图(testing视图是默认欢迎视图的副本) /var/www/html/resources/views/ ├── errors │ └── 503.blade.php […]
从以前提出的问题中,我知道我可以将请求路由到具有反向代理的不同服务器,例如apache的mod_proxy。 我的问题是,在我深入了解它的设置之前,哪个反向代理将允许我根据请求头中的HTTP或ws做出路由决定。 因此,例如,我希望所有进入https://example.com请求都被路由到lanserver:443,而请求将与wss://example.com进行代理,并被路由到web socket端点lanserver:8443。 这将是可能的mod_proxy? 还是其他的Linux代理? 谢谢。