最近働き始めた会社のために新しいサイトを構築し、古いサブドメインに残す必要のある一部の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セットアップ、または不思議な自動魔法の点で非標準です。