我为我们公司建立了一个新站点,我最近开始为该公司工作,并将其部署在一个单独的子域 ( 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/whatever和http://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 设置或一些神秘的自动化方面是非标准的?