0

Zendアプリケーションを展開したサブドメインがあります。問題は、それがディレクトリを指していて、ディレクトリabcを指すように変更できないことです。リダイレクトするファイルをルートにpublic置く方法はありますか.htaccessディレクトリpublic?それはできますか?私がそれを成し遂げることができる別の方法はありますか

パブリックディレクトリ内の私のindex.php

<?php

// Define path to application directory
defined('APPLICATION_PATH')
    || define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));

// Define application environment
defined('APPLICATION_ENV')
    || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));

// Ensure library/ is on include_path
set_include_path(implode(PATH_SEPARATOR, array(
    realpath(APPLICATION_PATH . '/../library'),
    get_include_path(),
)));

/** Zend_Application */
require_once 'Zend/Application.php';



// Create application, bootstrap, and run
$application = new Zend_Application(
    APPLICATION_ENV,
    APPLICATION_PATH . '/configs/application.ini'
);
$application->bootstrap()
            ->run();

私の.htaccess内部公開ディレクトリ

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

現在、ディレクトリ構造は次のようになっています

/myroot
 -.settings
 -application
 -docs
 -library
 -public
 -tests
 -.buildpath
 -.proect
 -.zfproject.xml
4

2 に答える 2

1

ドメインが正しく設定されることを願っています。この設定があれば

sub.domain.net --> /myroot

その (/myroot) フォルダーに .htaccess が必要になります。これは、http 要求のベースであるためです。このように見えるはずです

RewriteEngine On  
RewriteBase /public  
RewriteCond %{REQUEST_FILENAME} -s [OR]  
RewriteCond %{REQUEST_FILENAME} -l [OR]  
RewriteCond %{REQUEST_FILENAME} -d  
RewriteRule ^.*$ - [NC,L]  
RewriteRule ^.*$ public/index.php [NC,L]  

RewriteBase ディレクティブは、RewriteCond 内のすべての要求を検出する必要があり、主に最初の RewriteRule に適用されます。基本的に、すべての HTTP パス リクエストの相対ルートを設定 (書き換え) します。2 番目の RewriteRule は、最終的にローカル パスであるアプリケーションをトリガーします。(この最後のルールについて間違っていないことを願っています。それがうまくいかない場合は、公開せずに試してみてください。テストすることはできませんが、数年前にこのように機能するアプリを入手しました。)

于 2012-04-17T22:08:50.947 に答える