Убираем index.php из URL

Если вы успели заметить, то Zend Framework использует помощник вида baseUrl() для того, чтобы сформировать ссылку к CSS и другим статическим файлам. Но работа скрипта нарушается, если URL содержит строку index.php.

Предположим, что в layout.phtml подключение к CSS выглядит так:

<?php echo $this->headLink()->prependStylesheet($this->baseUrl().'/css/site.css'); ?> 

Это код метода baseUrl():

<?php 
class Zend_View_Helper_BaseUrl 
{ 
    function baseUrl() 
    { 
        $fc = Zend_Controller_Front::getInstance(); 
        return $fc->getBaseUrl(); 
    } 
}

Если вы откроете Zend Framework проект в браузере, то увидите примерно такую картину:

Если в конец строки добавить index.php, то всё рушится:

Более наглядный пример подключения к файлам:

/zfproject/public/index.php/css/site.css 
/zfproject/public/css/site.css.

Решение! Используйте mod_rewrite

Для решения проблемы просто воспользуйтесь mod_rewrite и добавьте строку в ваш файл .htaccess:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /([^/]+/)*index.php 
RewriteRule ^index.php(.*)$ /zfproject/public$1 [R=301,L]

Ещё вариант, но похуже

В самом начале файла index.php измените REQUEST_URI:

$_SERVER["REQUEST_URI"] = str_replace('index.php','',$_SERVER["REQUEST_URI"]);

Этот способ работает, но его не следует применять! Может существуют и другие варианты, но мне первый больше нравится.


Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/bGTabKDguI0/lessons.php

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Убираем index.php из URL | | 2012-06-19 12:07:35 | | Статьи Web-мастеру | | Если вы успели заметить, то Zend Framework использует помощник вида baseUrl() для того, чтобы сформировать ссылку к CSS и другим статическим файлам. Но работа скрипта нарушается, если URL содержит | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: