Как удалить public из url, используя маршрутизацию в Zend Framework - PullRequest
1 голос
/ 23 марта 2012

Одна проблема в моем Zend, я пишу правило в .htaccess для удаления «public» из URL следующим образом,

------------------------------------------------------------------------ 
RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain-name.com/$ [OR]<br/>
ReWriteCond %{REQUEST_URI} !public/<br/>
ReWriteRule ^(.*)$ public/$1 [L]<br/>
------------------------------------------------------------------------ 

, но в Zend есть метод ROUTE, я использовал его для нескольких языковчтобы установить код языка в URL LIKE www.domain-name.com / ru / , используя zend_controller_router_route_chain ,

до того, как этот метод будет реализован, мой URL будет www.domain-name.com нокогда я использую этот метод в моем Zend-проекте, может быть, он перезаписывает правило .htaccess, удаляющее «public» из URL, или что-то происходит, используя то же самое, и «public» отображается в url как www.domain-name.com / public.

ТАК ЕСТЬ ЛЮБОЙ МЕТОД ИЛИ ПУТЕШЕСТВОВАТЬ, ЧТОБЫ УДАЛИТЬ ПУБЛИЧНЫЙ ОТ URL, ИСПОЛЬЗУЯ ЛЮБОЙ МЕТОД МАРШРУТ В РАМКАХ ZEND ???

Спасибо,

MRJethva .

Ответы [ 3 ]

9 голосов
/ 15 сентября 2013

Следующее работает для меня, используя ZF2.2

Создайте index.php в корневом каталоге ZF2 и добавьте следующее содержимое:

<?php 
define('RUNNING_FROM_ROOT', true);
include 'public/index.php';

Создайте .htaccess в корневом каталоге ZF2 и добавьте следующее содержимое:

SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule .* index.php

Наконец, добавьте этот условный оператор в начало вашего файла layout.phtml:

<?php 
if (defined('RUNNING_FROM_ROOT')) {
  $this->plugin('basePath')->setBasePath($this->basePath().'/public');
} ?>

Наслаждайтесь!

Ссылка: http://akrabat.com/zend-framework/zend-framework-on-a-shared-host/

2 голосов
/ 23 марта 2012

Да, и вам не нужно Zend_Route. Удалите папку public и поместите из нее файлы Zend Framework (index.php, .htaccess и т. Д.) В корневой каталог (например, htdocs). Вы можете поместить папку application и другие файлы Zend Framework вне корневого веб-каталога, где они не могут быть доступны через HTTP.

Все, что вам нужно сделать, это отредактировать index.php и изменить APPLICATION_PATH на правильный путь. Таким образом, ваше Zend-приложение будет запускаться из корневого каталога, и вам не нужно будет использовать mod_rewrite, чтобы скрыть общую папку.

См. Последнюю часть этого ответа для аналогичного примера.

0 голосов
/ 11 апреля 2018

zf2 и zf3 удалить Публичный из URL

создать файл index.php и .htaccess добавить в корень проекта

добавить строку в index.php include_once ( "публичный / index.php");

и в файле .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)(.+)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteRule ^(.*)$ %{ENV:BASE}index.php [NC,L] 

после этого перейдите по следующему пути

Module-> application (имя модуля) -> view-> layout-> layout.phtml изменить путь css и js добавить общедоступный путь

до

-> prependStylesheet ($ this-> BasePath ( 'CSS / bootstrap.min.css'))

-> prependFile ($ this-> BasePath ( 'JS / bootstrap.min.js'))

после

-> prependStylesheet ($ this-> BasePath ( 'публичный / CSS / bootstrap.min.css'))

-> prependFile ($ this-> BasePath ( 'общественные / JS / bootstrap.min.js'))

также в пути к изображению

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...