2011-02-14 77 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之類的東西。

我希望它能幫助別人。