Пехлеви и .htaccess

Мое приложение 'зенда' по умолчанию имеет эту структуру по умолчанию

/zend + webroot
    /application
    /config
    /library
    /public
        .htaccess
        index.php

и значение по умолчанию .htaccess перенаправляет различные детали контроллера/действия через./public/index.php

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Я использую этот URL по умолчанию для доступа к приложению

http://domain/index.php

Я теперь переместился в общий хост, где webroot выше корня 'зенда'.

/webroot
    /zend
        /application
        /config
        /public
            index.php
           .htaccess

но я могу только получить доступ к своему приложению через этот URL

http://domain/zend/public/index.php

я хочу быть в состоянии использовать

http://domain/zend/index.php

и имейте перенаправление .htaccess.

и я задаюсь вопросом, как я могу настроить .htaccess файл для перенаправления URL-запросов. Я прочитал это учебное руководство, но меня didn; t работают на меня

/webroot
    /zend
        .htaccess
        /application
        /config
        /library
        /public
            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]

Кто-либо может определить что-нибудь?

10
задан emeraldjava 4 January 2010 в 23:32
поделиться

3 ответа

Создайте zend/index.php, содержащий этот код:

<?php include 'public/index.php';

Теперь создайте zend/.htaccess, содержащий этот код:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteRule .* index.php

Убедитесь, что все ваши изображения/ss/js файлы находятся в zend/public/ и не удаляйте файл zend/public/.htaccess :)

Не забывайте, что в baseUrl запроса не содержится '/public', поэтому вам нужно будет добавить его самостоятельно, когда вы ссылаетесь на файлы с публичной ориентацией.

Regards,

Rob...

17
ответ дан 3 December 2019 в 20:42
поделиться
[

] Большинство разделяемых хостов, которые я использовал, до сих пор позволяют загружать файлы за пределами веб-корня. Например, [

] [
/home/{username}/webroot/
] [

]... вы все еще можете загружать на []/home/{ имя пользователя}/[] например:[

] [
/webroot
    index.php
   .htaccess
/application
/config
] [

]Тогда в вашей bootstrap, просто замените []public[] на []webroot[], или, если у вас есть доступ по ssh, удалите существующий webroot и замените его символической ссылкой на zend public directory, например: [

] [
rm -f webroot
ln -s public webroot
]
0
ответ дан 3 December 2019 в 20:42
поделиться

Не забудьте изменить базу RewriteBase .

1
ответ дан 3 December 2019 в 20:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: