好的,这里是这样的情况:我用我的codehostiter网站在bluehost是我没有root权限,我已经将该网站移动到rackspace。 我没有改变任何的PHP代码,但有一些意想不到的行为。 意外行为: http://mysite.com/robots.txt旧的和新的解决scheme的机器人文件 http://mysite.com/robots.txt/旧的bluehost安装程序parsing为我的codeigniter 404错误页面。 rackspaceconfigurationparsing为: 未find请求的URL /robots.txt/在此服务器上找不到。 **这个实例让我相信我的mod重写可能会有问题,或者缺less这个问题。 第一个通过php正确地产生错误,而第二个senario让服务器处理这个错误。 这个问题的下一个例子更麻烦:' http : //mysite.com/search/term/9 x 1-1%2F2 white /' 新网站的结果: 错误的请求您的浏览器发送了一个此服务器无法理解的请求。 旧网站的结果是:正在加载的实际网页以及未编码的search字词。 我不得不假设,这与我到新服务器时,我从根级htaccess文件到httpd.conf文件和虚拟服务器默认和default-ssl的事实有关。 他们来了: 默认文件: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName mysite.com DocumentRoot /var/www <Directory /> Options +FollowSymLinks AllowOverride None </Directory> <Directory /var/www> Options -Indexes +FollowSymLinks -MultiViews AllowOverride None Order allow,deny allow from all RewriteEngine On […]
我想设置mod_proxy工作,以便我的博客运行在我的网站的子目录下,而不是子域名,所以我得到了SEO反向链接的好处。 我想要做的是让我的tumblr博客运行在blog.mysite.com(这反过来从myblog.tumblr.com映射)将运行在mysite.com/blog 我如何设置mod_proxy来做到这一点,是不是只能从我的.htacess文件里面设置? 我有我的网站托pipe在apache服务器上,使用plesk作为控制面板。 我联系了我的networking主机,他们告诉我mod_rewrite可以实现它,他们给了我这个,但表示他们不会提供进一步的支持mod_rewrite作为他们不支持的东西 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^example.co.uk/blog$ RewriteCond %{REQUEST_URI} !/standard RewriteRule ^(.*)$ http://example.tumblr.com$1 [R] </IfModule> 理想的id喜欢使用mod_proxy方法,因为它从本文的seoangular度推荐http://www.seomoz.org/blog/what-is-a-reverse-proxy-and-how-can-it-帮助,我的search引擎优化
我已经设置了一个Apache反向代理到正在工作的Tomcat,我可以加载我的url并获得连接到Tomcat后端。 我现在试图做的是重写用户在浏览器中看到的URL。 这是我的代码 – LoadModule proxy_html_module modules/mod_proxy_html.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so # DON'T TURN ProxyRequests ON! Bad things will happen ProxyRequests off # Enabling mod_proxy_html ProxyHTMLEnable On ProxyHTMLLogVerbose On LogLevel Debug SSLProxyEngine on # Setup mod_proxy_ajp load balancer to the 2 happ hosts <Proxy balancer://happcluster> BalancerMember ajp://happ01.domain.com:8009 loadfactor=1 BalancerMember ajp://happ02.domain.com:8009 loadfactor=1 ProxySet lbmethod=bytraffic ProxySet stickysession=JSESSIONID </Proxy> […]
这是前一个问题的延续,这个问题已经有了一些改变。 以下是我要谈的结构。 我的目标是创build隧道/代理。 port 80 port 6103 Website (shared hosting) ———-> Tunnel (Dedicated hosting) ———–> RETS Server 我用P标志(即ProxyPass)重写规则来重写请求。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^rets/server/(.*)$ http://rets-server:6103/rets/server/$1 [P] </IfModule> 对于几乎所有的请求(我迄今为止所做的),除了响应的内容types是多部分(或图像)的请求之外,它工作得很好。 它以0内容长度给出响应200 OK。 以下是我在不使用代理的情况下收到的回复 < HTTP/1.1 200 OK < Server: Apache-Coyote/1.1 < RETS-Version: RETS/1.5 < cache-control: private < Server: StratusRETS/1.7 […]
我有一个wp博客,它位于/var/www/mysite.com/blog,可通过www.mysite.com/blog访问 当访问www.mysite.com/blog/我看到索引页面,但子目录上的所有链接不再工作,例如:www.mysite.com/blog/my-great-article正在抛出(apache日志): File does not exist: /var/www/mysite.com/web/blog/my-great-article, referer: http://www.mysite.com/blog/ 虚拟主机: Alias /blog "/var/www/mysite.com/web/blog" <Location "/blog"> Allow from all AddType application/x-httpd-php php php4 php3 html htm </Location> .htacess in / blog dir: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /blog/ RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /blog/index.php [L] </IfModule> […]
有一个主机:secure.foo.com使用https公开web服务 我想创build一个使用Apache的反向代理,将服务器internal.bar.com上的本地http端口映射到secure.foo.com公开的https服务 由于它是一个Web服务,我需要映射所有的URL,以便path: https://secure.foo.com/some/path/123 可以通过以下方式访问: http://internal.bar.com/some/path/123 谢谢。 我已经得到了这么多: <VirtualHost *:80> ServerName gnip.measr.com SSLProxyEngine On ProxyPass / https://internal.bar.com/ </VirtualHost> 我认为这是工作除了URL重写。 我发现的一些资源是: 设置一个复杂的Apache反向代理 Apache作为https服务器的反向代理
这是我的httpd.conf 。 在里面,我有以下的地方 #Listen 12.34.56.78:80 #Listen 127.0.0.1:8887 Listen 127.0.0.1:80 #Listen 127.0.0.1:8080 Listen 192.168.1.4:80 我有一个.htaccess RewriteEngine On RewriteRule ^wordpress(.*)$ wp-oct/live$1 在我的本地WWW文件夹安装在/wp-oct/live/ /wordpress/应该redirect到,但它不。 它改为redirect到http://localhost:8080/wp-oct/live/ 。 为什么8080显示?
我们正试图摆脱mod_wsgi上的wsgi应用程序。 在使用wsgiref.simple_server作为debugging环境之前,我们已经运行了它。 现在,我们想把它转移到使用Apache httpd集成在同一端口下加载静态文件,并提供一个更适合生产的环境。 我们设置的httpd.conf文件如下所示: <VirtualHost *:80> DocumentRoot /var/www/ ErrorLog /var/www/log/error_log LogLevel debug WSGIScriptAlias /app /var/www/python/resource/rest.py <Directory /var/www/python/> Order allow,deny Allow from all </Directory> <Directory /> Order allow,deny Allow from all RewriteEngine On # Some rewrites go here </Directory> </VirtualHost> 通过这个设置,我们可以访问主应用程序文件rest.py(在http://myhost/app ),但是任何导入到模块(比如from module1 import function ,其中module1与rest.py在同一目录下)是与一个ImportError失败。 我怀疑这与必须设置某种环境variables,但我已经添加/var/www/python到主要应用程序方法上的sys.path ,它不起作用。 任何帮助或指针与此将非常感激。 谢谢!
我有一个.htaccess文件这样做: RewriteRule ^system(.*)$ /system/app/$1 [QSA,L] …然后在/ system / app下面,我有另一个.htaccess文件这样做: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php [QSA] 所以,当你连接到/ system和/ system / login时,在两种情况下都应该调用/system/app/index.php。 在我正在使用的大部分托pipe计划中,这是有效的。 但在一些客户托pipe计划,我得到一个不寻常的结果。 这种不寻常的结果是,我可以连接到/系统只是罚款和index.php加载,但如果我连接到/系统/login,我得到了404。我什至简化/system/app/index.php,并简单地做: <?php print_r($_SERVER); …但它只显示/系统上的结果,并显示404如果/系统/login。 现在,切换到另一个人的托pipe计划,它工作正常 – 这只是在一些托pipe计划。 你认为可能是什么问题? 是mod_security吗? 打开MultiView吗? 这是一个特定版本的Apache造成这个? 这是Apache的错误吗? 我很困惑。 编辑 :我几乎想知道是否有一个新的Apacheconfiguration,只会让你有一个.htaccess文件在根目录,或不会让你有一个.htaccess文件加载,然后调用另一个.htaccess文件在子文件夹。 编辑 :在尝试closures这个问题之前等待“太本地化”。 听我一分钟。 如果这是Apache或cPanel中的一个全新的选项,可以打开,创build这个问题,或者是一个新的mod_security的东西,你不觉得这将是一个问题,将影响人的吨,而不仅仅是HostGator的?
我有一个Apache httpd用作很多后端的SSL反向代理前端。 我从用户给出的path计算后端的名字。 例如: https://myhostname.com/myaccount : https://myhostname.com/myaccount转换为http://myaccount.myhostname.com 为此,我使用了一个RewriteMap和RewriteRule ,并打开了[P]标记。 一切工作正常。 不过,我现在需要反向代理和后端之间的持续连接。 我很清楚保持活着与RewriteRule的[P] ( http://httpd.apache.org/docs/current/en/rewrite/flags.html#flag_p – 性能警告)不起作用,所以我试过使用ProxyPass和环境variables插值来完成工作。 我得到了一个RewriteRule ,除了将映射结果保存到一个环境variables,然后使用这个variables调用ProxyPass之外什么都不做。 RewriteMap mymap prg:/path/to/my/map RewriteCond %{REQUEST_URI} ^/([^/]+)/?.*$ RewriteCond ${mymap:%1} ^http://([^/]+/)$ RewriteRule ^/([^/]+)/?$ – [L,E=original:$1,E=rewritten:%1] ProxyPassInterpolateEnv On ProxyPassReverse /${original}/ http://${rewritten} interpolate 这导致与[P] RewriteRule一样的行为:代理是好的,但不使用http保持活动。 我试着用一个硬编码的主机名来代替使用${rewritten} (但保留${original} ),并观察到这是使Apache创build新连接而不是重用现有连接的一部分。 这个错误: https : //issues.apache.org/bugzilla/show_bug.cgi?id = 43308提出了相同的问题,并提出一个补丁,可以解决我的问题。 不过,我想知道是否有人有一个想法来解决这个不同的/更好的方式。