Codeigniter .htaccess: предоставить публичный доступ ко всем файлам и папкам в папке public. - PullRequest
3 голосов
/ 11 октября 2011

Я использую Codeigniter 2.0.3 | Apache 2.2.17 | PHP 5.3.4.

Я хочу предоставить доступ ко всем файлам и подпапкам в папке public. Я прочитал статьи в вики Codeigniter, а также все первые 5 страниц о результатах поиска в Google и ничего не нашел.

Это дерево файлов:

- application
    - public
        - css
            - style.css
        - img
        - js
- system
- .htaccess

И это .htaccess, который я использую, чтобы удалить «index.php» из URL и попытаться дать доступ к папке:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /CodeIgniter_2.0.3

#Removes access to the system folder by users.
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]

#Checks to see if the user is attempting to access a valid file,
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

#Enable access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index\.php|public|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

Веб-сайт работает, и index.php больше не требуется в URL, но последнее условие должно предоставлять доступ к общей папке, но оно не работает для меня, поэтому это http://localhost/CodeIgniter_2.0.3/public/css/style.css файл не найден.

В config.php у меня есть:

$config['base_url'] = 'http://localhost/CodeIgniter_2.0.3/';
$config['index_page'] = '';

Пожалуйста, помогите. Спасибо !!!

1 Ответ

0 голосов
/ 11 октября 2011

С вашей текущей структурой вам нужно изменить последний RewriteCond на:

RewriteCond $1 !^(index\.php|application\/public|robots\.txt)

, поскольку ваш .htaccess находится в том же каталоге, что и папка приложения, а общая папка - в папке приложения, необходимо явно пометить папку application / public как доступную.

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