URL에서 index.php를 제거하는 CodeIgniter


160

내 현재 URL은 다음과 같습니다 [mysite]index.php/[rest of the slug]. 이 URL
을 제거하고 싶습니다 index.php.

mod_rewrite내 apache2 서버에서 활성화되어 있습니다. 에서 config,$config['index_page'] = '';

내 codeignitor 루트 .htaccess파일에

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

그러나 여전히 작동하지 않습니다. 내가 어디로 잘못 가고 있니?



이 질문에 왜 중복 답변이 많은가
Tilak Maddy

답변:


239

다음을 시도하십시오

config.php를 열고 다음을 수행하십시오.

$config['index_page'] = "index.php"

$config['index_page'] = ""

경우에 대한 기본 설정 uri_protocol이 제대로 작동하지 않는 경우가 있습니다. 그냥 교체

$config['uri_protocol'] ="AUTO"

으로

$config['uri_protocol'] = "REQUEST_URI"

.htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

참고 : .htaccess 코드는 호스팅 서버에 따라 다릅니다. 일부 호스팅 서버 (예 : Godaddy)에서 추가? 위 코드의 마지막 줄에서. 해당되는 경우 다음 줄이 마지막 줄로 바뀝니다.

// Replace last .htaccess line with this line
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

4
이 코드를 사용해 보았지만 RewriteRule ^(.*)$ index.php/$1 [L]여전히 domain.com/about-us, domain.com/index.php/about-us 및 domain.com/index.php?/about-us 방식으로 페이지를 볼 수 있습니다 SEO 오류 즉 중복 제목 태그 및 중복 메타 설명
Musaddiq Khan

답변 주셔서 감사합니다. 동일한 문제가 있으며 첫 번째 RewriteCond를 추가하면 작동합니다. 매뉴얼 (여기 : codeigniter.com/userguide3/general/… )에 언급되지 않은 이유를 자세히 설명 할 수 있습니까 ?
Claudio

답변 주셔서 감사합니다, 나는 같은 탱크 인증에서 문제가있어
striker_axel

$_POST또는 isset($_POST)이를 추가 한 후 작동하지 않습니다.
DCK


135

단계 : -1 “application / config”폴더를 열고“config.php“파일을여십시오. config.php 파일에서 아래 코드를 찾아서 바꾸십시오.

//find the below code   
$config['index_page'] = "index.php" 
//replace with the below code
$config['index_page'] = ""

2 단계 : -2 CodeIgniter 폴더로 이동하여 .htaccess를 만듭니다.

Path:
Your_website_folder/
application/
assets/
system/
.htaccess <——— this file
index.php

3 단계 : .htaccess 파일에 아래 코드 작성

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

단계 : -4 경우에 따라 uri_protocol의 기본 설정이 제대로 작동하지 않습니다. 이 문제를 해결하려면“application / config / config.php”파일을 열고 아래 코드를 찾아서 바꾸십시오.

//Not needed for CodeIgniter 3 its already there.
//find the below code
$config['uri_protocol'] = "AUTO"
//replace with the below code
$config['uri_protocol'] = "REQUEST_URI" 

wamp 서버를 제외하고는 기본적으로 rewrite_module이 비활성화되어 있기 때문에 작동하지 않으므로 활성화해야합니다. 이를 위해 다음을 수행하십시오.

  1. 왼쪽 클릭 WAMP 아이콘
  2. 아파치
  3. 아파치 모듈
  4. 왼쪽 클릭 rewrite_module

원본 문서

링크 예


6
이 작업을 수행하려면 "application"폴더 대신 루트 폴더에 .htaccess를 넣어야합니다.
Mawardy

CodeIgniter 폴더가 없습니다. 무슨 소리 야?
Nicolas S.Xu

1
그것은 index.php를 제거하지만 여분의 백 슬래시를 제거해야합니다 '/'
Pradeep Kumar Prabaharan

config.php에서 변경하고 .htaccess 파일을 만든 후. 오류 구문 오류 : 구문 오류, 55 행의 application \ config \ config.php에서 예기치 않은 '$ config'(T_VARIABLE)
Fawwad

답변 감사합니다. 나에게 표시된 것처럼 내 htaccess 파일을 업데이트 한 다음 파일이 내부가 아닌 시스템 폴더의 형제인지 확인해야했습니다.
Kiky Rodriguez

44

1 단계 :

htaccess 파일에 이것을 추가하십시오

<IfModule mod_rewrite.c>
  RewriteEngine On
  #RewriteBase /

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [QSA,L]
</IfModule>

2 단계 :

codeigniter 설정에서 index.php 제거

$config['base_url'] = ''; 
$config['index_page'] = '';

3 단계 :

Apache 구성에서 htaccess 대체 허용 (명령)

sudo nano /etc/apache2/apache2.conf

파일을 수정하고

AllowOverride All

www 폴더 용

4 단계 :

아파치 모드 재 작성 활성화 (명령)

sudo a2enmod rewrite

5 단계 :

Apache 재시작 (명령)

sudo /etc/init.d/apache2 restart

3
.htaccess 채우기가 기본적으로 사용되지 않기 때문에 apache2.conf의 "AllowOverride All"이 문제를 해결했습니다.
Laurent Jégou

1
나는 당신에게 이것에 대한 보너스를 줄 수 있기를 바랍니다! 내 하루를 구했다. 이 후 2 시간을 보냈다 : |
Kiran P.

1
그것은 최근의 리눅스 배포판 할 수있는 하나 개의 요구 사항이 편집에 AllowOveride 규칙 첫 번째 일에 대한 것
NASZ Njoka 미스터

마침내 작동하게되었습니다. 감사. AllowOveride 규칙이이 문제를 해결하는 데 도움이됩니다. 나는 우분투 16.04를 사용하고 있습니다
APIT 존 이스마일을

탁월한 솔루션, 감사합니다 :)
Razib Al Mamun

16
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

사용하다

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [PT,L]

이 순서대로 URL이 있으면 site.com/index.php/class/method/id

NB : config.php에서 index.php를 제거해야합니다. config [index_page] = ""

NB : $ 0 대신 마지막 줄의 차이에 $ 1을 사용하십시오.


이것은 나를 위해 작동합니다. 위의 답변은 그렇지 않습니다. 아래 답변을 테스트하지 않았습니다.
Jam Ville

이것은 나를 위해 일했지만 uri 프로토콜을 'AUTO'에서 변경해야했습니다. 다음과 같이 'REQUEST_URI'에 : $ config [ 'uri_protocol'] = 'REQUEST_URI';
isabelle martz 1

RewriteRule .* index.php/$1 [PT,L]- RewriteRule 패턴을 에서 .*로 변경하지 않으면 URL 경로를 전달하지 않습니다 (.*). 그러나 사용하는 경우 $config['uri_protocol'] = 'REQUEST_URI';어쨌든 관련이 없습니다.
MrWhite

16

1 단계 => .htaccess 파일을 응용 프로그램 및 시스템 폴더가있는 루트 폴더에 넣습니다.

2 단계 =>-yourdomain.com/project/와 같은 하위 폴더를 사용하는 웹 경로 인 경우 htaccess 파일에서 다음 코드를 사용하십시오.

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

yourdomain.com과 같은 루트 폴더를 사용하는 웹 경로 인 경우 htaccess 파일에서 다음 코드를 사용하십시오.

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

이것은 지금까지 최고이며 완전한 답변입니다. 하위 폴더는 다른 답변보다 낫습니다.
Bhavik Shah

이것이 답이되어야합니다. RewriteCond % {REQUEST_FILENAME}! -f RewriteCond % {REQUEST_FILENAME}! -d 다음과 같은 부분에 투표했습니다.
GunWanderer

11

htaccess에서 이것을 사용하십시오.

RewriteEngine On
RewriteBase /root_folder_name/
RewriteCond %{REQUEST_URI} ^system.*
RewriteCond $1 !^(index\.php|images|js|uploads|css|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

도움이 되었기를 바랍니다.


root_folder_name-> 루트 폴더 이름으로 이것을 변경 했습니까 ??
yuvaraj bathrabagu

그렇습니다. 나는 codeigniter 루트를 거기에 넣었다. 그 맞습니까?
Nihar Sarangi

버디 나는 두 개의 CI 프로젝트 에서이 .htaccess 코드를 사용하고 있습니다 !! 그리고 둘 다 잘 작동합니다!
yuvaraj bathrabagu

11

두 단계가 있습니다 :

1) config.php 편집

$config['index_page'] = 'index.php';

$config['index_page'] = '’;

2) .htaccess 파일 생성 / 편집

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

6
  1. 만들 .htaccess파일을이 코드를 넣어

     RewriteEngine on
     RewriteCond $1 !^(index\.php|resources|robots\.txt)
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
  2. 변화

    $config['index_page'] = ''; 

파일 index.php에서 제거config.php

  1. 서버에서 다시 작성하십시오.

6

1. 루트 디렉토리에 새 파일 .htaccess를 작성하십시오.

<IfModule mod_rewrite.c>
RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>`

2. config.php 파일로 이동하여에서 $config['index_page'] = 'index.php'변경하십시오.$config['index_page'] = ''


6

2 단계로 해결했습니다.

  1. 구성 파일 application / config / config.php 에서 2 개의 매개 변수 업데이트
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';
  1. 루트 폴더에서 .htaccess 파일을 업데이트하십시오.
<IfModule mod_rewrite.c>
    RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

5

이것을 시도해보십시오. 그것은 나를 위해 일하는 데 도움이 될 수 있습니다.

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]

루트 htaccess 파일에 코드를 넣고

$config['index_page'] = '';

구성 파일에.

문제가 발생하면 알려주십시오.


바로 내가하고있는 일입니다.
Nihar Sarangi

4
+ Copy .htaccess from Application to Root folder
+ edit .htaccess and put

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /ci_test/

    #Removes access to the system folder by users.
    #Additionally this will allow you to create a System.php controller,
    #previously this would not have been possible.
    #'system' can be replaced if you have renamed your system folder.
    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #When your application folder isn't in the system folder
    #This snippet prevents user access to the application folder
    #Submitted by: Fabdrol
    #Rename 'application' to your applications folder name.
    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    #Checks to see if the user is attempting to access a valid file,
    #such as an image or css document, if this isn't true it sends the
    #request to index.php
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

Note: make sure your web server is enable for  "rewrite_module"

+ Remove index.php from $config['index_page'] = 'index.php';
- edit config.php in application/config
- search for index.php
change it from  $config['index_page'] = 'index.php'; to  $config['index_page'] = '';

이 비디오를 참조 하십시오 https://www.youtube.com/watch?v=HFG2nMDn35Q


4

글쎄,이 모든 대답은 좋지만 초보자에게는 처음에는 혼란 스럽습니다. 컨트롤러에 상주하는 다른 htaccess 파일이 있지만 기본 프로젝트 폴더에서 htaccess를 편집하거나 추가해야합니다.

응용 프로그램, 시스템, 자산, 업로드 등의 파일이있는 codeigniter 폴더입니다.

Your_project_folder/
application/
assets/
cgi-bin/
system/
.htaccess---->(Edit this file if not exist than create it)
index.php

이 파일을 아래와 같이 변경하십시오 :

<IfModule mod_rewrite.c>
  RewriteEngine On
  # !IMPORTANT! Set your RewriteBase here and don't forget trailing and leading
  #  slashes.
  # If your page resides at http://www.example.com/mypage/test1
  # then use RewriteBase /mypage/test1/
  # Otherwise /
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
  # If we don't have mod_rewrite installed, all 404's
  # can be sent to index.php, and everything works as normal.
  # Submitted by: Anand Pandey
  ErrorDocument 404 /index.php
</IfModule>

그리고 물론 당신은 application / config / config.php에서 두 줄의 코드를 변경해야합니다.

//find the below code   
$config['index_page'] = "index.php";
$config['uri_protocol'] ="AUTO" 
//replace with the below code
$config['index_page'] = "";
$config['uri_protocol'] = "REQUEST_URI";

어떤 이유로 든이 모든 대답이 저에게 효과적이지 않습니다. URL에 /index.php/를 추가하면 페이지에 액세스 할 수 있습니다.
Bilal Ahmad

3

개발과 생산

    # Development
    RewriteEngine On
    RewriteBase /your_local_folder/
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]

    #Production PHP5 CGI mode
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond $1 !^(index\.php|images|scripts|styles|vendor|robots\.txt)
    RewriteRule ^(.*)$ index.php?/$1 [L]


2

config \ config.php 파일 로 이동 하여이 변수에서 index.php 값을 제거 할 수 있습니다

$config['index_page'] = 'index.php'; // delete index.php

.htaccess 파일을 작성하고이 코드를 붙여 넣으십시오.

<IfModule mod_rewrite.c>

 Options +FollowSymLinks

 RewriteEngine On
 #Send request via index.php
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule ^(.*)$ index.php/$1 [L]

</IfModule>

좋은 기회


2
  Removing index.php from url of codeigniter   

Three steps are require to remove index.php from url in Codeigniter.

1)Create .htacess file in parallel to application holder and just copy past the following code:

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2) Change $config['index_page'] to blank in config.php in application folder as below:

$config['index_page'] = '';

3) Enable rewrite_module of apache.

1

Codeigniter의 URL에서 index.php를 제거하려면 세 단계 만 필요합니다.

1) 응용 프로그램 홀더와 병렬로 .htacess 파일을 만들고 다음 코드를지나 복사하십시오.

RewriteEngine On
RewriteBase /CodeIgniter/
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

2) 다음과 같이 응용 프로그램 폴더의 config.php에서 $ config [ 'index_page']를 공백으로 변경하십시오.

$config['index_page'] = '';

3) 아파치의“rewrite_module”을 활성화합니다.

아파치를 다시 시작하고 완료하십시오.

세부 사항 : http://sforsuresh.in/removing-index-php-from-url-of-codeigniter-in-wamp/


1

모든 설정이 훌륭하다고 생각하지만 htaccess 파일을 잘못 배치하여 htaccess를 프로젝트 파일에 추가하려고합니다.

project_folder-> htaccess

이 코드를 htaccess에 추가하십시오.

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

1

application \ config \ config.php 파일로 이동하여 index.php를 제거 할 수 있습니다

 $ config [ 'index_page'] = 'index.php'; // index.php 삭제

로 변경

 $ config [ 'index_page'] = '';


1

이 RewriteEngine을 사용해보십시오

        # Removes index.php from ExpressionEngine URLs
        RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

1

이것은 나를 위해 작동합니다. codeigniter 3.1.11, PHP 5.6.40에서 테스트되었으며 테스트 서버의 apache2 구성에서 가상 호스트를 사용합니다.

<VirtualHost *:80>
     ServerAdmin webmaster@dummy-host2.example.com
     DocumentRoot (__DIR__)
     ServerName mydomain
     ##ErrorLog "logs/dummy-host2.example.com-error.log"
     ##CustomLog "logs/dummy-host2.example.com-access.log" common
     <Directory "(__DIR__)">
        Require all granted
        AllowOverride All
   </Directory>
</VirtualHost>

/.htaccess 내용

    <IfModule mod_rewrite.c>
       RewriteEngine On
       RewriteCond %{REQUEST_FILENAME} !-f
       RewriteCond %{REQUEST_FILENAME} !-d
       RewriteRule ^(.*)$ index.php/$1 [L] 
    </IfModule>

0

이 단계를 수행하면 문제가 해결됩니다.

1- 여기에서 .htaccess 파일을 다운로드하십시오 https://www.dropbox.com/s/tupcu1ctkb8pmmd/.htaccess?dl=0

2- 5 번 줄에서 CodeIgnitor 디렉토리 이름을 변경하십시오. 내 디렉토리 이름이 abc 인 것처럼 (이름을 추가하십시오)

3- codeignitor 폴더의 메인 디렉토리 (abc)에 .htaccess 파일을 저장하십시오.

4- Config.php 파일에서 uri_protocol을 AUTO에서 PATH_INFO로 변경

참고 : 우선 주석을 제거하여 apachi의 httpd.conf에서 mod_rewrite를 활성화해야합니다


0

이 코드를 사용하십시오. 폴더 이름이 있으면 두 번째 줄을 변경하십시오. index.php 파일 및 폴더 응용 프로그램, 시스템 폴더가 있습니다. 대부분 두 번째 줄로 인해 문제가 발생합니다. 프로젝트가있는 폴더 이름은 구성하지 않습니다. 두 번째 줄은 중요합니다. index.php를 제거하는 것은 간단합니다. RewriteBase의 RewriteEngine / project_folder_name RewriteCond % {REQUEST_FILENAME}! -f RewriteCond % {REQUEST_FILENAME}! -d RewriteRule. * index.php / $ 0 [PT, L]

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

controller / config.php 파일로 이동하십시오.

config [ 'index_url'] = '';

더 많은 연구를 위해 참조하십시오.

https://ellislab.com/expressionengine/user-guide/urls/remove_index.php.html

https://ellislab.com/blog/entry/fully-removing-index.php-from-urls


0

이 답변 외에도 index.php를 추가하거나 편집 할 수 있습니다 (이미있는 경우). 보안을 위해 웹 사이트 디렉토리의 파일을 나열하여 index.php를 비활성화하려는 경우 내용을 다음으로 변경하십시오.

<?php
   header('location:your_required_starting.php'); 
?>

0

사소한 것 : (선택 사항)

vhosts에서 다시 쓰기 엔진 상태를로 업데이트 한 후 Apache를 다시 시작하십시오 Rewrite ON.

주목해야 할 중요한 사항 :

Apache vhosts 파일에서이 스크립트 행이 있는지 확인하십시오. AllowOverride None 그렇다면 이 행을 제거 / 코멘트하십시오.

내 vhosts 파일 스크립트 : (이전)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

내 vhosts 파일 스크립트 : (After)

<VirtualHost *:80>
    DocumentRoot "/path/to/workspace"
    ServerName ciproject
    ErrorLog "/path/to/workspace/error.log"
    CustomLog "/path/to/workspace/access.log" common
    Directory   "/path/to/workspace">
        Options Indexes FollowSymLinks
        #AllowOverride None
        Order allow,deny
        Allow from all
    </Directory> 
</VirtualHost>

나는 같은 문제에 직면하고 약 1 일 동안 어려움을 겪었고 모두 괜찮 았습니다. 나중에 시행 착오 방법 으로이 것을 발견했습니다. 이것을 제거한 후, 나의 일이 완성되었습니다. URL은 이제 index.php를 찾지 않습니다 :)


0

위의 모든 솔루션이 작동하지 않으면 프로젝트 폴더에서 두 파일 index.html과 index.php가되며 index.html의 이름을 index_1.html로 바꾸고 프로젝트를 찾습니다.


0

"?"가 추가 된 점에 유의하십시오. ".php"다음의 문자, 특히 CodeIgniter를 다룰 때

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

vs.

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

그것은 다른 몇 가지에 달려 있습니다 .. 작동하지 않으면 다른 옵션을 사용해보십시오!


0

.htaccess에 코드를 넣으면 URL에서 index.php 를 제거 할 수 있습니다

파일 경로 : root> .htacess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


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

그것이 효과가 있기를 바랍니다.


0

CodeIgniter 3.16에서 htaccess를 사용하여

index.php 파일 제거

또한

HTTP를 HTTPS로 리디렉션

코드는 다음과 같습니다.

  • application\config\config.php파일 로 이동

변화시키다

$config['index_page'] = 'index.php';

$config['index_page'] = '';
  • 이제 .htaccess 파일을 열고 아래 코드를 업데이트하십시오.
RewriteEngine on
RewriteBase /

## Redirect SSL
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

## Remove fron url index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond $1 !^/(index\.php|assets/|humans\.txt)
RewriteRule ^(.*)$ index.php/$1 [L] 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.