我在Ubuntu上开发了一个关于Zend Framework的项目。我在本地计算机上创建了一个虚拟主机进行测试。它在我的本地机器上完美运行。这是本地计算机上虚拟主机的条目。
<VirtualHost *:80>
ServerName example.dev
DocumentRoot /var/www/example/public/
<Directory /var/www/example/public/>
AllowOverride All
</Directory>
</VirtualHost>
我的问题是,当我购买域名(example.com)名称和托管时,他们给了我以下ftp目录来上传我的内容。
example.com
指向/www.example.com/web/content
但我需要example.com
指向/www.example.com/web/content/public
我让他们解决了,但他们说这是不可能的。是否有任何编程/配置解决方案。
谢谢
我已在/www.example.com/web/content/public
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
答案 0 :(得分:3)
根据他们使用的Web服务器以及他们所拥有的配置,您可以覆盖某些配置,例如,您可以使用apache重写规则更改文档根目录,并将.htaccess
文件更改为放在/www.example.com/web/content
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteRule ^$ /public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
答案 1 :(得分:1)
将index.php文件放入公用文件夹 并将.htaccess放在根文件夹中,女巫内容
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]
Options -Indexes
答案 2 :(得分:1)
它很简单,只需将公共目录内容移动到父级,所以/www.example.com/web/content/public中的所有文件 成为 /www.example.com/web/content
并且不要忘记编辑index.php文件中的包含路径以使用新位置