"index.php"
중앙 어딘가에있는 codeigniter의 모든 경로에서 튀어 나온 부분을 어떻게 제거 합니까? 나는 깨끗한 비를 원 index.php-fied URLs
하십니까?
"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]
또 다른 좋은 버전은 다음과 같습니다.
RewriteCond $1 !^\/(index\.php|assets|robots\.txt)
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';
위의 모든 방법이 실패했으며 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>
...
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]
내가 추가 할 거라고 생각 했어
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
.htaccess이고 다음과 같은 방식으로 application / config.php 변수를 편집해야합니다.
바꾸다
$config['uri_protocol'] = “AUTO”
와
$config['uri_protocol'] = “REQUEST_URI”
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
이건 확실히 효과가있을거야 .. 시도 해봐
활성화했는지 확인하십시오 mod_rewrite
(하지 않았습니다).
사용하려면:
sudo a2enmod rewrite
또한 다음으로 교체하십시오 AllowOverride None
.AllowOverride All
sudo gedit /etc/apache2/sites-available/default
마지막으로 ...
sudo /etc/init.d/apache2 restart
내 .htaccess는
RewriteEngine on
RewriteCond $1 !^(index\.php|[assets/css/js/img]|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
actions
: stackoverflow.com/questions/14419757/...
.htaccess 파일로서 좋은 옵션은 Kohana Framework에서 제공하는 파일을 사용하는 것입니다 .
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /
# Protect hidden files from being viewed
<Files .*>
Order Deny,Allow
Deny From All
</Files>
# Protect application and system files from being viewed
RewriteRule ^(?:application|system)\b.* index.php/$0 [L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
잘 작동하는 .htaccess입니다.
codeigniter의 URL 경로에서 index.php를 해결하는 두 가지 방법이 있습니다.
1 : config / config.php에서 코드 변경 :
$config['index_page'] = 'index.php';
에
$config['index_page'] = '';
2 : 생성되지 않은 경우 루트 경로에 .htacess를 생성하고, 다음 코드를 복사합니다.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
저장 한 다음 Apache 구성 rewrite_module 또는 mod_rewrite가 활성화되어 있는지 확인합니다. 그렇지 않으면 활성화하십시오. (최상의 접근)!
나는 많은 다른 호스팅에서 apache2에서 이것을 테스트했으며 훌륭하게 작동합니다.
이 htaccess 사용
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
확실히 당신은 할 수 enabled mod_rewirte
로모그래퍼phpinfo();
그런 다음 config / config.php에서 다음을 수행하십시오.
$config['index_url'] = '';
|
| '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'] = 'AUTO';
아직 작동하지 않으면 40/54 행에 $config['uri_protocol']='AUTO'
나열된 내부 application/config/config.php
파일 중 하나로 변경해보십시오 .
가끔 사용 : REQUEST_URI
대신 AUTO
또는 "QUERY_STRING"
goDaddy 호스팅
찾는 위치 \application\config\config.php
파일이라는 변수가있다index_page
다음과 같이 보일 것입니다.
$config['index_page'] = "index.php";
그것을 변경
$config['index_page'] = "";
그런 다음 언급했듯이 다음과 같이 .htaccess
파일에 다시 쓰기 규칙을 추가해야합니다 .
RewriteEngine on
RewriteCond $1 !^(index\\.php|resources|robots\\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
그것은 나를 위해 작동합니다, 당신도 희망합니다.
리눅스에서 apache2 서버를 사용하는 경우 .htaccess 파일의 변경 사항과 함께 apache2.conf 파일을 재정의해야 할 수도 있습니다. /etc/apache2/apache2.conf 에서 apache2 구성 파일을 찾으십시오 .
검색 디렉토리 / var / www / AllowOverride 변경 없음-> AllowOverride All
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory
루트 웹 디렉토리에 .htaccess 파일을 배치하십시오.
위의 내용이 충족되지 않으면 작동하지 않습니다. 일반적으로 시스템 폴더에 있으며 루트에 있어야합니다. 건배!
application
루트가 아닌 디렉토리에 있습니다.
나는 많은 해결책을 시도했지만 내가 생각 해낸 것은 다음과 같습니다.
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|jquery|js|robots \.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
이것은 필요에 따라 URL에서 index.php를 제거합니다.
이 줄을 .htaccess
파일에 사용 합니다. 내가 루트 폴더에 배치
RewriteEngine on
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
그런 다음 http://example.com/controller/function/parameter에 액세스 할 수 있습니다 .
http://example.com/index.php/controller/function/parameter 대신
이것은 나에게 완전한 마법을 주었다.
RewriteEngine on
RewriteBase /
# Hide the application and system directories by redirecting the request to index.php
RewriteRule ^(application|system|\.svn) index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
도움이 되었기를 바랍니다.
안녕하세요
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
뿐만 아니라
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/index.php?/$1 [L]
여기서이 codeigniter 응용 프로그램이 도메인 이름 / 폴더 /index.php와 같은 하위 도메인으로 호스팅되는 경우 폴더는 하위 폴더의 이름입니다.
그것이 당신을 위해 일하기를 바랍니다. 감사.
.htaccess에 다음 코드를 복사하십시오.
RewriteEngine on
Options -Indexes
RewriteCond $1 !^(index\.php|assets|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /Foldername of your ci/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
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 단계 :
Apache 모드 재 작성 활성화 (명령)
sudo a2enmod 재 작성
5 단계 :
Apache 다시 시작 (명령)
sudo /etc/init.d/apache2 restart