Скрыть имя папки codeigniter, когда папка является подпапкой другого приложения php

У меня есть основное приложение php и codeigniter в подпапке этого приложения. я хочу скрыть имя папки CI для одного контроллера. как

Исходный URL: http://example.com/ci/welcome/test

и исключенный URL-адрес

http://example.com/welcome/test

какое базовое решение htaccess для этого


person Himanshu Pandey    schedule 24.05.2016    source источник
comment
используя RewriteRule ^welcome/([a-zA-Z0-9-_']+)$ ci/welcome/$1 [NC,QSA], используя это правило, но оно показывает страницу welcome/index, а не welcom/test   -  person Himanshu Pandey    schedule 24.05.2016


Ответы (3)


пожалуйста, используйте это:

RewriteEngine On
RewriteRule ^ci/(.*)$ /$1 [L,R=301,QSA]   
person Pardeep Pathania    schedule 24.05.2016
comment
не работает редирект на 404 страницу основного приложения - person Himanshu Pandey; 24.05.2016
comment
пожалуйста, используйте этот RewriteEngine On RewriteRule ^ci/(.*)$ /$1 [L,R=301] - person Pardeep Pathania; 24.05.2016
comment
Я использую это правило RewriteRule ^welcome/([a-zA-Z0-9-_']+)$ ci/welcome/$1 [L,R=301], но оно показывает только индексную функцию, а не другую функцию - person Himanshu Pandey; 24.05.2016

у меня есть решение

  1. в htaccess

RewriteRule ^([a-zA-Z0-9-_']+)/([a-zA-Z0-9-_']+) ci/$1/$2 [L,NC,QSA]

  1. в index.php последняя строка меняется с require_once BASEPATH.'core/CodeIgniter.php'; на require_once APPPATH.'core/CodeIgniter.php';

3 в APPPATH.'core/CodeIgniter.php' найдите $RTR и поместите этот код позади

if( $RTR->class =='mainfoldername' ){
            $RTR->class =$RTR->method;
            $RTR->method = $RTR->uri->rsegments[3];
            $total_segment = count( $RTR->uri->segments );
            foreach( $RTR->uri->segments as $k=>$uri  ){
                if( $k != $total_segment ){
                    $RTR->uri->segments[$k] = $RTR->uri->segments[$k+1];
                    $RTR->uri->rsegments[$k] = $RTR->uri->rsegments[$k+1];
                }
            }

        }
person Himanshu Pandey    schedule 25.05.2016

Попробуйте эти

Правило перезаписи ^(.*)$ ci/$1 [L]

person netto    schedule 27.05.2016