2016-03-25 11 views
2

Yığınlık akışında benimki gibi birçok soru gördüm, ancak tüm çözümler benim için çalışmıyor.Dizin.php dizinindeki CI dizininden kaldır

example.com ve codeigniter application - example.com/codeigniter gibi etki alanım var.

Ana dizinde hiç .htaccess yok ancak index.php'yi codeigniter uygulamasından kaldırmak istiyorum.

Config.php:

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

ancak hata ben:

$config['base_url'] = 'http://example.com/codeigniter'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'REQUEST_URI'; 

denedim

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Sonraki çözüm çok çalışmıyor:

Ben www.örnek/CodeIgniter/kullanıcı gibi benim denetleyici aramaya çalıştığınızda/giriş çünkü
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /codeigniter/index.php?/$1 [L] 

Ben hatası: config.php

Not Found

The requested URL /codeigniter/user/login was not found on this server.

+0

Farklı barındırma sağlayıcıları, '.htaccess' dosyanızı yazmanız için gereken yolu etkileyebilecek farklı Apache kurallarına sahip olabilirler. GoDaddy'yi bir müşteri için kullandım ve işe yarayan bir '.htaccess 'ı bulmam 2 saatimi aldı. Hangi barındırma sağlayıcısı kullanıyorsunuz? – MonkeyZeus

+1

RewriteBase/codeigniter – Veniamin

+0

'RewriteCond $ 1!^(Index \ .php | assets | robots \ .txt)' 'RewriteCond $ {REQUEST_URI} olmalıdır!^(Index \ .php | assets | robots \ .txt)' –

cevap

1

Kontrol bu farklılıklar:

APPPATH.'config/config.php' yılında:

$config['base_url'] = 'http://example.com/codeigniter/'; 

.htaccess yılında: Aşağıdaki kodu kullanarak kontrol edebilirsiniz cevabım

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

farklar ağırlıklı kullanıyorsanız kesiyor. Düzenli şekilde çalışmak için CI, eğik çizgi ile base_url() biter. Apache .htaccess dosyasının başlangıç ​​eğik çizgisi ile belirtilen kökten başlayan konuma söylenmesi gerekir. bitiş çizgisi, Apache'ye herhangi bir ekin eğik çizgi ile başlaması gerektiğini söyler. Bu RewriteBase kök dizinde olduğu gibi kongre olurdu sadece eğik çizgi ile veya daha iyi olduğunu söyleyen bir eğik çizgi ile biter. Farklı sunucular .htaccess kodunu farklı şekilde yorumlayabildiğinden, bunu deneyin.

2

Tut varsayılan ayarları

deneyin htaccess kodu:

benim Ubuntu Server

benim için çalıştı aşağıdaki:

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

Ayrıca s yapmak Yeniden yazılabilir modül sunucuda etkinleştirildiğinden emin olun.

print_r(apache_get_modules());