0

最近働き始めた会社のために新しいサイトを構築し、古いサブドメインに残す必要のある一部のURLに干渉しないように、別のサブドメイン( http://site.mysite.com )に展開しました。 。

古い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プロジェクトのフォルダー構造内に、会社のサイトをHTMLのみのサイトとして奇妙にホストしているpublic/siteフォルダーを発見しました。

問題は、このフォルダーを削除すると、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フォルダー内のすべてのコントローラーを取得して、この/ siteフォルダーにリモートで言及しているものが見つかるかどうかを確認しましたが、一致するものが見つかりませんでした。

私はこの奇妙な行動で頭皮から髪を引っ張っています、誰か助けてもらえますか?

また最後のポイントは、これは私が完全にはよく知らないAmason AWSサーバーですが、このサーバーで何かおかしなことが起こっている可能性があります。それは、Apache構成、DNSセットアップ、または不思議な自動魔法の点で非標準です。

4

1 に答える 1

0

この問題を解決することはできず、メソッドが数分間しか機能しない理由を理解できません。アマゾンAWSで何か変なことが起こっているのではないかと思っています。

修正できる唯一の方法は、犯人の/ siteフォルダー内にindex.htmlを追加し、小さなJavaScriptスニペットを使用してクライアント側からサイトをリダイレクトすることでした。

于 2013-02-22T10:24:41.197 に答える