403 Ошибка при использовании WideImage с CodeIgniter - PullRequest
1 голос
/ 15 июля 2011

Мое приложение успешно использует WideImage для обрезки и изменения размера изображений. Я называю это на изображениях, используя следующее:

<img src="<?=asset_url()?>scripts/thumb.php?src=<?=$post['picture']?>" />

Где asset_url() - это функция, которая возвращает путь к моей папке ресурсов. Структура папок:

| assets
| application
| system

Это отлично работает, но папка с активами должна содержать изображения, файлы JS и CSS.

Если я попытаюсь переместить файл thumb.php в любую папку в каталоге application, я получу ошибку 403 .

Является ли эта функция CodeIgniter для остановки прямого доступа к файлам? Если да, то как мне обойти это?

Я использую файл .htaccess по умолчанию, который выглядит примерно так:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]  
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>  
ErrorDocument 404 /index.php
</IfModule>

Спасибо!

1 Ответ

2 голосов
/ 15 июля 2011

Я думаю, что это правильное поведение любого фреймворка. Это просто не дает вам свободу делать ваше приложение совершенно непонятным для других разработчиков.

Например, если я разработчик X-фреймворка и не ожидаю blah.php в папке приложения - мне поможет хороший фреймворк (а не автор :)). Таким образом, в результате мы получим код хорошего качества.

Но в вашем конкретном вопросе я думаю, что вы должны просто создать некоторый контроллер / действие - а не напрямую вызывать blah.php

...