将请求重定向到公共目录 zend



>我有一个子域,我已经将我的 zend 应用程序部署到其中,问题是它指向目录说abc,我无法将其更改为指向public目录有没有办法我可以在根目录上放置一个 .htaccess 文件,该文件将重定向到 public 目录? 能做到吗? 有没有其他方法可以完成它

我的索引.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
RewriteEngine On
RewriteRule ^.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]

没有错误,也没有问题..

我希望我能正确设置您的域。如果您有此设置

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路径请求的相对根。第二个重写规则最终触发您的应用程序,这是一个本地路径。(我希望我对这最后一条规则没有错。如果这不起作用,请尝试没有公众。我无法测试它,但几年前我有一个这样的应用程序。

相关内容

  • 没有找到相关文章

最新更新