Jump to content
Sign in to follow this  
Geovani Alves

Problema com Zend .htaccess

Recommended Posts

Caros colegas,

Estou com um projeto zend no qual toda estrutura esta em uma pasta superior 'novo'.

www

-> novo
Como ja existe um site la, tive que colocar tudo numa pasta 'novo'.
As configurações sao padroes como outros projetos.

Porem ele nao reconhece o public/index.php

 

htaccess: public

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
----------------------------------------------------------
htaccess: raiz do projeto, pasta 'novo'
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?site.com.br$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ public/$1
#-------------------
RewriteCond %{HTTP_HOST} ^(www.)?site.com.br$
RewriteRule ^(/)?$ public/index.php [L]
</IfModule>
------------------------------------------------
(site fictício)

http://www.site.com.br/novo/
The requested URL /c/a/site.com.br/public/novo/public/index.php was not found on this server.

Mas se digitar
http://www.site.com.br/novo/public, ele reconhece.

Desde ja agradeço.

Share this post


Link to post
Share on other sites

Isso ocorre porque a estrutura do Zend foi feita para que ele ficasse fora da pasta public_html ou www do servidor, e a pasta public do zend seria a public_html ou www do servidor, então algo que você possa tentar é colocar um arquivo index.php na raiz dessa sua pasta novo, contendo um redirecionamento para a pasta public.

Deve funcionar.

Share this post


Link to post
Share on other sites

Coloca na raiz do seu projeto um .htaccess rescrevendo para /novo/

RewriteEngine On 
RewriteRule (.*) (www.)?site\.com\.br/novo/$1

E esse .htaccess dentro da pasta /novo/:

RewriteEngine On 
RewriteRule (.*) ./public/$1

E coloca esse .htaccess dentro da pasta public

RewriteEngine On
# The following rule tells Apache that if the requested filename
# exists, simply serve it.
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
# The following rewrites all other queries to index.php. The 
# condition ensures that if you are using Apache aliases to do
# mass virtual hosting, the base path will be prepended to 
# allow proper resolution of the index.php file; it will work
# in non-aliased environments as well, providing a safe, one-size 
# fits all solution.
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::$
RewriteRule ^(.*)$ - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L]
Edited by ivanferrer

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.