Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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.

Compartilhar este post


Link para o post
Compartilhar em outros 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.

Compartilhar este post


Link para o post
Compartilhar em outros 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]

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.