是否有人确切知道您在foo.com/
更改为foo.com/subfolder/
时的Zend网站会发生什么?我注意到路由中断并且我没有正确使用front_controller.setBaseUrl()
或者它没有效果。我无法在Zend网站上找到关于此问题的任何正式文档。
答案 0 :(得分:3)
问题的最可能原因是您需要在RewriteBase
文件中设置.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]
假设您要将网站移至subfolder
子文件夹,请在RewriteEngine on
下方的重写规则中添加以下行。
RewriteBase /subfolder
您的完整重写规则应如下所示:
RewriteEngine on
RewriteBase /subfolder
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
PS:前端控制器/请求对象/路由器将99%的时间自动正确地确定baseUrl
。尝试不明确设置它。如果您的重写规则的上述更改不起作用,则只会尝试覆盖。
您可以随时通过以下方式获取已确定的baseUrl
请求:
var_dump(Zend_Controller_Front::getInstance()->getBaseUrl());
答案 1 :(得分:0)
答案 2 :(得分:0)
您需要确保将/ newfolder /添加到配置中的所有set_include_path语句中。然后setBaseURl应该可以正常工作。