2012-07-03 1 views
2

Я новичок в переназначении url и в настоящее время сталкивается с проблемами с переписыванием url для нескольких приложений в codeigniter. Я просмотрел весь StackOverflow с некоторыми возможными ответами, но он все еще не решает мои проблемы полностьюmod_rewrite для множественного применения в codeigniter

Моего каталога в корне, как такая

  • -Применения
  • --administrator
  • - интерфейс

То, что я ищу для моих пользователей для доступа к мой веб-сайт (внешний интерфейс) с http://www.mydomain.com/ и мой администратор (серверной), как http://www.mydomain.com/admin/

мой текущий .htaccess как таковое

<IfModule mod_rewrite.c> 
    RewriteEngine On 
# If the user types just "admin". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin$ administrator.php [L,QSA] 

# If the user enter in any admin section, like "admin/section". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^admin\/(.*)$ administrator\.php/$1 [L,QSA] 

# If the user types any site section, like "site/section". 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index\.php/$1 [L,QSA] 

    ErrorDocument 404 /index.php 
</IfModule> 

CodeIgniter multi-application .htaccess problem код из

я могу получить то, что я хочу на переднем конце с вышеприведенным .htaccess, но я не могу заставить его работать на мой задний конец. В принципе, www.domain.com/admin дает ошибку 404 страницы, не найденную.

Прошу вас посоветовать по этой проблеме. Также, пожалуйста, расскажите мне, где я должен разместить этот файл .htaccess? в корне? внутри папки приложения? или внутри папки интерфейса и администратора соответственно.

Большое спасибо.

С уважением.

+0

пардон, каталог как таковой -Применение --administrator --frontend -administrator.php -index.php –

ответ

0

Нашел способ работать с этой проблемой. Это не очень умный способ сделать это, но это по крайней мере сработало.

Во-первых, я создал папку «admin» в корне, с копией приложения index.php Что действительно делает мой каталог похожим на этот.

-admin 
    --.htaccess 
    --index.php 
    -application 
    --frontend 
    --administrator 
    -index.php 
    -.htaccess 

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

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond $1 !^(index\.php|update\.php|administrator\.php|assets|admin|robots\.txt|favicon\.ico) 
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule> 

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

Для .htaccess в папке администратора

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 

    RewriteRule ^/(.*)$ index.php/$1 [L] 

     RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L] 


</IfModule> 

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

В то время как это работает на локальном хосте, следует отметить, что она не может работать на арендованных серверах, так как файловая система хоста может отличаться.

0

Почему не что-то подобное в корневом каталоге.

RewriteEngine on 
RewriteCond $1 !^(index\.php|update\.php|assets|admin|robots\.txt|favicon\.ico) 
RewriteRule ^(.*)$ index.php/$1 [L] 

В основном это игнорирует любые каталоги, такие как «админ», чтобы перейти к внешнему приложению. Вам нужно будет установить config.php и удалить index.php с контроллера.