0
  • サブディレクトリからルートドメインに読み込まれる Yii サイトをセットアップしようとしています。私のルート サイト フォルダには、ルート.htaccessファイルと、 Yii サイトを含むサブディレクトリ「subdir 」しかありません。私のローカル環境で動作する解決策を見つけました:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*) subdir/index.php/$1 [QSA,L]
    

しかし、サイトを HostGator にアップロードすると、正しく機能しません。たとえば

ローカル環境で使用するhttp://localhost/contactと、正しいページが開きます (site/contact - サイト コントローラーと contact アクションと呼ばれます。Yii 'contact'=>'site/contact' ルールを urlManager に追加したので、 と の両方http://localhost/contacthttp://localhost/site/contact機能します) 。

HostGator でhttp://mydomain.com/contactor ( )を使用すると、デフォルトのインデックス ページが表示されます (代わりにサイト/インデックスと呼ばれるサイト コントローラーとデフォルトのインデックス アクション)。http://mydomain.com/site/contact

サブサイトに直接アクセスすることを選択するとhttp://mydomain.com/subdir/contact、問題なく動作しますが、使用すると動作しませんhttp://mydomain.com/contact

htaccess のこの最後のルールをどうにかして変更する必要があると思いますが、どうすればよいかわかりません。ありがとう!

4

3 に答える 3

0

.htaccess を編集する必要はありません。Yii エントリ スクリプト (index.php) とデフォルトの .htaccess をサブディレクトリから webroot に移動するだけです (これらが public_html の直下に存在するようにします)。index.php と .htaccess をルート ディレクトリに移動すると、すべての Web リクエストは (サブディレクトリではなく) webroot の下の index.php に直接ルーティングされるため、URL の /subdirectory 部分が削除されます。

ファイルを移動した後、index.php を編集して、yii.php ファイル (Yii フレームワーク ディレクトリの下) と Yii 構成ファイル (main.php) への参照を更新する必要があります。最後に、assets ディレクトリを webroot に直接移動する必要があります。これは、Yii がデフォルトで、assets ディレクトリがエントリ スクリプトと同じ場所にあることを想定しているためです)。

必要な作業はこれだけですが、さらに詳細が必要な場合は、ここでアプローチを完全に説明します。

http://muhammadatt.tumblr.com/post/83149364519/modifying-a-yii-application-to-run-from-a-subdirectory

于 2014-04-20T04:59:50.310 に答える
0

以来、あなたは以前の質問でwww.mysite.com/mysite/frontend/www/controller/actionうまくいくと述べました。あなたが使用する必要があります:

AddHandler application/x-httpd-php53s .php .html

Options +SymLinksIfOwnerMatch
IndexIgnore */*

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{HTTP_HOST} ^(www.)?mysite.com$
RewriteCond %{REQUEST_URI} !^/mysite/frontend/www

RewriteRule ^(.*)$ /mysite/frontend/www/$1 [L]
于 2013-10-11T16:07:17.190 に答える