Я установил файл .htaccess, содержащий правила перезаписи (как предложено CodeIgniter), показанные ниже.
Как я могу добавить к нему, чтобы любые запросы на URL, которые не начинаются с members/
или admin/
get public/
, помещаются в начале?
т.е. если кто-то запрашивает контакт /, он на самом деле должен идти на public/contact
и так далее, если только он не запрашивает members/something
или admin/something
.
.htaccess в настоящее время:
RewriteBase /
# Removes access to the system folder by users.
RewriteCond %{REQUEST_URI} ^_system.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
# prevent user access to the application folder
RewriteCond %{REQUEST_URI} ^myapp.*
RewriteRule ^(.*)$ /index.php?/$1 [L]
# This snippet re-routes everything through index.php, unless
# it's being sent to resources, or searching for robots.text
# Add any OR's in here if you need other directly accessable Files/folders
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteRule ^(.*)$ index.php/$1
.htaccess - отредактировано - вот как это выглядит сейчас:
RewriteCond %{REQUEST_URI} ^_system.*
RewriteRule ^(.*)$ /index.php?/$1
RewriteCond %{REQUEST_URI} ^myapp.*
RewriteRule ^(.*)$ /index.php?/$1
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteRule ^(.*)$ index.php/$1
RewriteCond %{REQUEST_URI} !^/(members/|admin/|public/|index\.php) [NC]
RewriteRule ^(.*)$ /public/$1 [L]
Сейчас возвращается 404 для всех запросов. Я уверен, что у меня что-то не так, но не знаю что:)
Структура файла:
site_root / .htaccess
site_root / index.php
site_root / MyApp /