我正在尝试设置默认的HTTP到HTTPSredirect。 不知何故,既mod_rewrite也不Redirect工作。 我错过了什么明显的? Listen 80 Listen 443 <VirtualHost *:80> ServerName www.example.com ServerAlias example.com Redirect ^/$ https://www.example.com </VirtualHost> <VirtualHost *:443> ServerName www.example.com ServerAlias example.com SSLEngine on SSLCertificateFile "/etc/ssl/certs/example.com.pem" SSLCertificateKeyFile "/etc/ssl/private/example.com.key" <Directory "/web/www.example.com"> allow from all Options -Indexes </Directory> #php_admin_flag safe_mode Off php_admin_value open_basedir /tmp/:/web/www.example.com DocumentRoot /web/www.example.com </VirtualHost>
我试图找出如何代理请求到本地主机的子域到Apache上的另一个端口,而不是代理请求只有本地主机(没有子域)。 我无法得到它的工作。 这是我到目前为止所提出的。 <VirtualHost *:80> ServerName subdomain1.localhost ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ ServerName subdomain2.localhost ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ NoProxy "localhost" </VirtualHost> subdomain1和subdomain2到localhost:3000的代理工作,但localhost也代理到localhost:3000。 我如何防止? 编辑 在@Esa和@HBruijn的帮助下,我仍然无法使其工作。 我编辑了虚拟主机http.conf到以下。 别名工作,但现在的子域名不起作用。 <VirtualHost *:80> ServerName localhost Alias /alias1 "/alias1" Alias /alias2 "/alias2" Alias /alias3 "/alias3" </VirtualHost> <VirtualHost *:80> ServerName subdomain1.localhost ProxyPass / http://localhost:3000/ ProxyPassReverse / http://localhost:3000/ </VirtualHost> […]
背景 我有一个运行Apache / 2.4.18(Ubuntu)的Ubuntu 16.04服务器。 我从github安装了let-encrypt并运行./letsencrypt-auto –apache ,从下面的对话框中select第二个选项: Please choose whether HTTPS access is required or optional. —————————————————————— 1: Easy – Allow both HTTP and HTTPS access to these sites 2: Secure – Make all requests redirect to secure HTTPS access —————————————————————— 这导致了这个消息 Congratulations! You have successfully enabled my.own.server.tld 并自动生成虚拟主机文件。 然后我重新启动服务器。 问题 我试图访问我的网站,这与http(没有问题),但与https(Firefox和Chrome尝试加载页面,超过两分钟后超时)。 我预计这个网站只能通过https访问,或者至less可以通过https访问。 组态 […]
我在Debian 8上安装了Apache 2.4,只有几个仅基于名称的虚拟主机,而且(现在)只有一个HTTPS虚拟主机由Let's Encrypt证书签名。 此时受保护的虚拟主机运行良好,但是如果使用https://访问其他不受保护的虚拟主机,则会获得受保护的虚拟主机的内容。 有什么办法(在这种情况下)做一些redirect到HTTP或避免加载安全的虚拟主机网站的内容?
我在JBoss EAP 7上validation了我的应用程序。我的应用程序在独立模式下工作,但是在集群模式下,我的应用程序被部署了,但是我无法login。 我又被重新路由到loginurl。 我使用mod_cluster设置了群集。 Load Balancer Server中没有错误日志logging在群集的单个节点上。 在我的testing环境中,我的负载平衡器和2个服务器节点在同一台机器上。 我给了JBoss节点不同的端口和实例ID来区分节点。 我正在共享我的mod_cluster.conf和JBoss standalone-ha.xml节点集群中的一个节点。 在此先感谢..请不要低估这个问题,请发表意见中的任何build议来重述这个问题。 以下是standalone-ha.xml文件中的代码片段: Modcluster设置是: <subsystem xmlns="urn:jboss:domain:modcluster:2.0"> <mod-cluster-config advertise-socket="modcluster" proxies="proxy1" balancer="testcluster" advertise="true" connector="ajp"> <dynamic-load-provider> <load-metric type="busyness"/> </dynamic-load-provider> </mod-cluster-config> </subsystem> Undertow设置是: <subsystem xmlns="urn:jboss:domain:undertow:3.1" instance-id="node1"> <buffer-cache name="default"/> <server name="default-server"> <ajp-listener name="ajp" socket-binding="ajp"/> <http-listener name="default" socket-binding="http" redirect-socket="https"/> <host name="default-host" alias="localhost"> <location name="/" handler="welcome-content"/> <filter-ref name="server-header"/> <filter-ref name="x-powered-by-header"/> </host> […]
我有运行Apache的Ubuntu 14服务器,并有华为路由器。 最近,我根据指导购买并安装了一个用于我的域名(如www.abc.com)的SSL证书。 然后我用他们的工具testing了我的ssl证书。 它会给出一个错误,因为通用名称不匹配。 工具说通用名为cpe.huawei.com 所以我也检查使用命令openssl s_client -connect www.abc.com:443它显示安全重新协商不支持。 当我使用工具显示通用名解码为cpe.huawei.com时,在这里检索服务器证书。 所以我知道在服务器上运行或caching另一个证书。 但是我search每个通用目录,找不到另一个证书。 此外,我的Apache错误日志文件没有关于这个问题的错误日志。 我需要帮助覆盖所有其他证书的新证书,并删除我的服务器上的任何cachingSSL证书。 谢谢。
我有一个Magento网站与Apache2工作,每天我得到机器人抓取url,我不想要,我想返回429特定的url。 我已经在我的htaccess中尝试过 <ifModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (Yahoo!\Slurp|semrushbot) [NC] Redirect 429 /shop/ricerca/ </ifModule> 我的机器人在哪里: yahoo slurp googlebot yandex semrush等 和保护的path是: /path/toprotect/ /path/to/protect2/ 拖尾访问日志似乎我的代码段不工作。 任何人都可以帮助我? 最终如果太乱,我只会使用nginx作为反向代理,并从那里我有更多的经验过滤机器人
我的Web服务器configuration为使用Let's Encryt证书,并且在尝试从特定networking(我的共同工作空间)访问我的一些子域(具有相同证书)时,我不断收到错误SSL_ERROR_RX_RECORD_TOO_LONG。 我有4个子域正在工作,其余(4个)没有。 每个域使用一个虚拟主机,如: <VirtualHost *:80> ServerAdmin [email protected] ServerName app.covevent.be DocumentRoot /home/covevent/app <Directory /home/covevent/app> Require all granted </Directory> </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName app.covevent.be DocumentRoot /home/covevent/app <Directory /home/covevent/app> Require all granted </Directory> SSLCertificateFile /etc/letsencrypt/live/www.covevent.be/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.covevent.be/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule> 对于api.covevent.be,www.covevent.be等configuration是完全一样的。你在这个configuration中看到错误吗? 我检查并访问http://www.covevent.be:443不起作用,并被Apache阻止。 此外SSL也启用,因为我的其他域正在工作…
Apache 2.4反向代理,像/ call /#/ whatever /方法这样的URL总是作为/ call /传递给上游,这就打破了显然使用服务器端锚点的应用程序。 我已经尝试了“nocanon”参数的ProxyPass(位置块内部和外部)以及[NE,P](这也意味着nocanon)的RewriteRule。 POCconfiguration非常简单,类似于这些: RewriteEngine on RewriteRule "^/(.*)" "http://localhost:8080/$1" [NE,P] 要么… ProxyPass / http://localhost:8080/ nocanon ProxyPassReverse / http://localhost:8080/ 有没有人有这方面的经验,谁可以阐明如何在上游URL包含片段? RFC 3986对片段标识符的描述及其在URL处理中的作用意味着Apache的行为是正确的,所以答案可能是“你不能这样做”。
Tomcat不允许在URL中存在任何'''(双引号)字符,因此根据RFC 7230将其视为无效字符。 然而,我有很多的服务客户仍然采取像http://abcd.com/userservice?user="donald" URL我的服务,我正在寻找的方式来重写这个URL为http://abcd.com/userservice?user=%20donald%20 。 我必须这样做多个服务(〜20)。 我看着https://stackoverflow.com/questions/1279681/mod-rewrite-replace-underscores-with-dashes,但它不能帮助我的用例。 Apache似乎不让用户重写查询参数。 有什么build议么?