общедоступный каталог codeigniter в URL-адресе

В примере:

- index.php
- /system
- /application
   - /controller
      - test.php (class:test ; function index() ; echo "hi")
- /public
   - style.css

Я указываю браузеру http://mysite.com/, он показывает "привет"

Если мне нужен style.css, я должен указать http://mysite.com/public/style.css< /а>

Но я хочу отметить, что http://mysite.com/style.css также может отображать style.css

Я попытался переместить index.php в общедоступный префикс добавления ../ перед системой и приложением.

Также я устанавливаю htaccess в корневом каталоге, тогда я могу успешно указать http://mysite.com/style.css для style.css

Но есть еще одна проблема, я больше не могу указать на свой тестовый контроллер, он показывает ошибку 404.

Как я могу сохранить оба URL-адреса?

ОБНОВЛЕНИЕ:

htaccess в корневом каталоге:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^public/.+$ - [L]

RewriteCond %{DOCUMENT_ROOT}/public/$0 -f
RewriteRule ^.+$ /public/$0 [L]

RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

при посещении http://mysite.com/style.css может отображаться style.css

но тест контроллера не работает, я посещаю http://mysite.com/test/test/index показывать 404 не "привет"


person jk jk    schedule 05.04.2013    source источник
comment
Имеет смысл иметь его в /public/ и вызывать через /public/style.css; в чем проблема? Также, пожалуйста, опубликуйте свой .htaccess.   -  person stormdrain    schedule 05.04.2013
comment
похоже, это проблема с вашими правилами перезаписи в htaccess, опубликуйте свой htaccess для получения дополнительной помощи   -  person bizzehdee    schedule 05.04.2013


Ответы (1)


Вы можете проверить с помощью RewriteCond, если запрошенный файл из публичный каталог

# prevent requests for the public directory from being rewritten
RewriteRule ^public/.+$ - [L]

RewriteCond %{DOCUMENT_ROOT}/public/$0 -f
RewriteRule ^.+$ /public/$0 [L]

Вы должны вставить это правило перед правилом Codeigniter, иначе файл может быть перезаписан в /index.php/....

Обновление:

Во-первых, вы должны пропустить RewriteCond !-f/!-d.

URL-адрес для test/index должен быть http://mysite.com/test/index или http://mysite.com/test.

person Olaf Dietsche    schedule 05.04.2013
comment
это может показать файл css, но мой контроллер 404 nt найден, я обновил вопрос - person jk jk; 05.04.2013
comment
@jkjk Покажите полный .htaccess в своем вопросе. - person Olaf Dietsche; 05.04.2013