0

我为我们公司建立了一个新站点,我最近开始为该公司工作,并将其部署在一个单独的子域 ( http://site.mysite.com ) 上,以免干扰一些需要保留在旧子域上的 URL .

出于某种奇怪的原因,旧的 HTML 站点(http://www.mysite.co/site)被放置在 Zend 应用程序的 public/ 文件夹中,即 public/site。我们希望将这个曾经在http://mysite.com/site文件夹中可用的站点重定向到我们的新站点http://site.mysite.com

我已经在 Zend 公共文件夹中编辑了现有的 .htaccess 文件,所以它看起来像这样:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,NC,L] 

# These four lines are my only alterations to this file...
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(apps|site).* [NC]
RewriteRule .* http://site.mysite.com/ [R=301,L]**

RewriteRule ^cart/selectaddress$ https://%{SERVER_NAME}/cart/selectaddress [R,L]

Redirect 301 /photobook-sa http://www.mysite.com/photobooksa/
Redirect 301 /photobook-SA http://www.mysite.com/photobooksa/
Redirect 301 /photobookSA http://www.mysite.com/photobooksa/

RewriteRule ^channel\.html channel\.php

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^.*$ - [NC,L]

php_value session.auto_start 0
RewriteRule ^.*$ index.php [NC,L]
Header append P3P "CP=\"HONK IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA\""

AddDefaultCharset UTF-8

这个想法是捕获http://mysite.com/apps/http://mysite.com/apps/whateverhttp://mysite.com/site/并将这些都重定向到http://site .mysite.com

问题是,重定向只适用于/apps 和apps/whatever,不适用于/site。因此,我在 Zend 项目文件夹结构中发现了 public/site 文件夹,它奇怪地将公司站点作为仅 HTML 站点托管。

问题是,当我删除这个文件夹时,整个 mysite.com 和 www.mysite.com 域都失败了,但是例如 mysite.com/apps 仍然设法重定向到 site.mysite.com

所以我尝试编辑 public/site/index.php 看起来如下:

<?php
header('Location: http://site.mysite.com'); exit;

它有效,但仅适用于几个请求,然后我收到服务器错误。

我还尝试在 public/site/.htaccess 中添加一个 .htaccess ,其中包含以下内容:

Redirect 301 http://site.mysite.com

哪个也可以在最初工作,但在几次请求后因服务器错误而失败?

我不知道发生了什么,不知道为什么虚拟主机依赖于公共/站点文件夹才能工作,甚至在虚拟主机设置中都没有提到。

我对 Zend application/controllers 文件夹中的所有控制器进行了 grep,以尝试查看是否可以找到远程提及此 /site 文件夹的任何内容,但未找到匹配项。

我用这种奇怪的行为把头发从头皮上拔了出来,有人可以帮忙吗?

最后一点,这是一个我不完全熟悉的 Amason AWS 服务器,会不会是这个服务器发生了一些有趣的事情,在 Apache 配置、DNS 设置或一些神秘的自动化方面是非标准的?

4

1 回答 1

0

我们无法解决这个问题,也无法弄清楚为什么我们的方法只工作了几分钟。我怀疑亚马逊 AWS 发生了一些奇怪的事情。

我们可以修复的唯一方法是在罪魁祸首 /site 文件夹中添加一个 index.html,使用一个小的 JavaScript 片段从客户端重定向站点。

于 2013-02-22T10:24:41.197 回答