"index.php"
중앙 어딘가에있는 codeigniter의 모든 경로에서 튀어 나온 부분을 어떻게 제거 합니까? 나는 깨끗한 비를 원 index.php-fied URLs
하십니까?
답변
Apache를 사용하는 경우 다음을 포함하는 루트 웹 디렉토리에 .htaccess 파일을 배치하십시오.
RewriteEngine on
RewriteCond $1 !^(index\.php|[Javascript / CSS / Image root Folder name(s)]|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
또 다른 좋은 버전은 다음과 같습니다.
답변
index.php를 제거하는 데 큰 문제가있었습니다. 일반적으로 아래 .htaccess는 여러 서버에서 테스트되었으며 일반적으로 작동합니다.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
<Files "index.php">
AcceptPathInfo On
</Files>
운이 없다면 다음 단계는 구성 파일을 조정하는 것입니다. 다른 URI 프로토콜을 시도해보십시오.
| 'AUTO' Default - auto detects
| 'PATH_INFO' Uses the PATH_INFO
| 'QUERY_STRING' Uses the QUERY_STRING
| 'REQUEST_URI' Uses the REQUEST_URI
| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO
$config['uri_protocol'] = 'ORIG_PATH_INFO';
여전히 운이 없으면 하위 폴더를 포함하도록 다시 쓰기 규칙을 변경하십시오. 개발 서버 등에서 임시 URL을 사용하는 경우 종종 문제가됩니다.
RewriteRule ^(.*)$ /subofolder1/subfolder2/index.php/$1 [L]
이 옵션을 가지고 놀기만하면됩니다. 또한 색인 파일이 다음으로 설정되어 있는지 확인하십시오.
$config['index_page'] = '';
행운을 빕니다!
답변
index.php 파일과 함께 응용 프로그램 루트 디렉터리에 .htaccess 파일이 있습니다. (htaccess 확장자가 올바른지 확인하십시오. Bz htaccess.txt가 작동하지 않았습니다.)
.htaccess 파일에 다음 규칙을 추가합니다.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
그런 다음 application / config / config.php 파일에서 다음 줄을 찾으십시오.
$config['index_page'] = 'index.php';
아래와 같이 변수를 비워 둡니다.
$config['index_page'] = '';
그게 나에게 효과적이었습니다.
더 이상 작동하지 않으면 다음 변수를 이러한 매개 변수 ( ‘AUTO’, ‘PATH_INFO’, ‘QUERY_STRING’, ‘REQUEST_URI’및 ‘ORIG_PATH_INFO’)로 하나씩 바꾸십시오.
$config['uri_protocol'] = 'AUTO';
답변
system\application\config\config.php
파일을 살펴보면 다음과 같은 변수가 있습니다.index_page
다음과 같이 보일 것입니다.
$config['index_page'] = "index.php";
그것을 변경
$config['index_page'] = "";
그런 다음 언급했듯이 .htaccess
파일에 다시 쓰기 규칙을 추가해야 합니다.
참고 : CodeIgniter v2에서이 파일은 시스템 폴더에서 application\config\config.php
답변
위의 모든 방법이 실패했으며 AllowOverride None 을 / etc / apache2 / sites-available / default의 가상 호스트 파일에서 AllowOverride All 로 변경하지 않았다는 것을 알았습니다.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride All <---- replace None with All
</Directory>
<Directory /var/www >
Options Indexes FollowSymLinks MultiViews
AllowOverride All <--- replace None with All
Order allow,deny
allow from all
</Directory>
...
답변
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* /codeigniter/index.php/$0 [PT,L]
RewriteRule. * index.php / $ 0 [PT, L]을 프로젝트 폴더 이름 “codeigniter”로 변경 한 후 작동합니다. 귀하의 지원에 감사드립니다.
답변
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]