2011-02-14 37 views
4

是否可以在没有设置虚拟主机的情况下在Windows(Apache或IIS)上配置Web服务器,以便像使用http://example.com/myapp而不是http://example.com/myapp/public这样的链接访问Zend Framework应用程序?没有虚拟主机的Zend Framework应用程序

+0

看看类似的问题在SO:http://stackoverflow.com/questions/4151246/install-zend-framework-without-apache-virtual-hosts或http://stackoverflow.com/questions/4274839/ zend-app-on-host-without-mod-rewrite-and-no-virtual-hosts – Marcin 2011-02-14 13:08:44

+0

我做了,但没有回答我的问题。我不希望链接中包含'公开' – yarson 2011-02-14 14:05:21

回答

12

使用这个的.htaccess

RewriteEngine On 
RewriteRule ^(.*)$ public/$1?%{QUERY_STRING} [QSA,L] 

,并把这个的application.ini

resources.frontController.baseUrl = "/myapp/" 
1

.htaccess文件机智以下内容到你的myapp目录:

RewriteEngine on 
RewriteRule (.*) public/$1 
+0

它不起作用。我得到404错误,因为'myapp'被识别为控制器,而它应该默认为'索引' – yarson 2011-02-14 14:20:39

0

创建.htaccess文件并将其放入根目录与以下内容

RewriteEngine on 
RewriteRule (.*) public/$1 

及以下线路添加到您的应用程序/ CONFIGS/applicaton.ini文件

resources.frontController.baseUrl = "/myapp/" 

不会有任何的错误,我将正常工作。

0

如这里的Zend文档https://framework.zend.com/manual/2.4/en/user-guide/skeleton-application.html#using-the-built-in-php-cli-server的建议,您可以使用使用命令

php -S 0.0.0.0:8080 -t public/ public/index.php 

像这样

php -S 0.0.0.0:8080 -t {path_of_project's_public_folder} {path_of_project's_public_folder_upto_idex.php_file} 

运行此只需打开命令提示符,输入上述命令的内置CLI服务器然后按回车,现在你可以打开你的项目,像这样http://localhost:8080/。你的应用程序在8080端口上运行,你可以将它更改为8000或5050之类的东西。

我希望它能帮助别人。