问题
I am new in ZF2. I have developed my small application in my local computer using virtual host.I want to run this site without virtual host.
My Folder Directory Structure is like this:
-ProjectName
-config
-module
-vendor
- zendframework
-public
- css
- img
- JS
- index.php
Index.php File:
<?php
/**
* This makes our life easier when dealing with paths. Everything is relative
* to the application root now.
*/
chdir(dirname(__DIR__));
// Decline static file requests back to the PHP built-in webserver
if (php_sapi_name() === 'cli-server' && is_file(__DIR__ . parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH))) {
return false;
}
// Setup autoloading
require 'init_autoloader.php';
// Run the application!
Zend\Mvc\Application::init(require 'config/application.config.php')->run();
For access CSS Or Image all time I used $this->basePath() prepend to fetch it.
My application is works fine if I write URL like this:
localhost/projectname/public/modulename
but I doesnt want to use public in url. How can I call my project without "Public" in url.
回答1:
Place your folder ProjectName somewhere outside of web server document root and make symbolic link to public folder in it.
For example, if your web server document root:
/var/www/html
place your project to
/var/www
and make simlink
/var/www/html/ProjectName -> ../ProjectName/public
If you work under the Windows OS, it is in much the same way.
For your case make this steps:
- Open command prompt as administrator
Suppose your user name is USERNAME, your wamp disk placement is D:. Execute commands:
C:\Users\USERNAME> d:D:\> cd wamp\wwwD:\wamp\www> mklink /D projectname D:\wamp\www\projectname\public
After that you may try to access your project by URL:
http:\\localhost\projectname
"NTFS symbolic link" on wikipedia
来源:https://stackoverflow.com/questions/20812882/zf2-skeleton-application-without-virtual-host