2016-09-07 3 views
0

Ich habe versucht, den Index von meinen URLs zu entfernen, aber ohne Glück, wenn ich Index sage ich meine www.mywebsite.com/en/controller/index nicht www .mywebsite.com/index.phpcoderigniter 3 Controller-Index in url (kein index.php)

Ich benutze codeigniter 3, ich bin auf ubuntu 16.04 so no httpd.conf aber mywebsite.com.conf der mod rewrite ist aktiviert, ich habe ein anderes Projekt mit codeigniter 2 was ist funktioniert perfekt.

hier ist mein .htaccess

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

Ich bin eine mehrsprachige Website dank dieses Plugin http://jeromejaglale.com/doc/php/codeigniter_i18n

In meinem Routing

$route['default_controller'] = 'App'; 
$route['404_override'] = 'site_404'; 

$route['translate_uri_dashes'] = TRUE;  

if ($this->config->item('multilanguage')):   
    $route['^(en|fr)/(.+)$'] = "$2"; 
    $route['^(en|fr)$'] = "$2";   
endif; 

Ich habe mit und in meinem Controller Ich habe dies

class App extends MX_Controller { 

    function __construct() 
    { 
     parent::__construct(); 
     header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 
    } 

    public function index() 
    { 
     /*I load my view here*/ 
    } 
} 

und ich beabsichtige, mehrere Controller und multiple Methoden zu verwenden Ich habe nach einer Lösung gesucht, aber ich finde immer die über die index.php, nicht die eigentliche Methode in der Steuerung (die in der URL bleibt)

+0

'$ route [ '^ (en | fr) $'] = "$ 2";' Wird das nicht scheitern? – hjpotter92

+0

Und auch hier Kleinbuchstaben '$ route ['default_controller'] = 'Modul/app/index';' – user4419336

Antwort

0

setzen Sie diese als erste Regel nach RewriteEngine On (auch mit geeigneten Stelle zu setzen wäre gut RewriteBase):

RewriteEngine On 
RewriteBase/

# If your default controller is something other than 
# "welcome" you should probably change this 
RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301] 
RewriteRule ^(.*)/index/?$ $1 [L,R=301] 
+0

Hallo Tpojka, Mit Ihrem Htaccess-Code gibt es keinen Index mehr in der URL, aber jetzt habe ich ein Not gefundene Seite. Ich rate jetzt muss ich einige Sachen in meinem Routing ändern, Ich versuchte $ route ['default_controller'] = 'App'; $ route ['default_controller'] = 'App/Index'; $ route ['default_controller'] = 'app'; Kleinbuchstaben Großbuchstaben etc ... kein Glück –

+0

In Bezug auf Server, ist Ihre Website Root-Speicherort '/' or '/ some_project_directory /'? – Tpojka

+0

Es war in einem Unterverzeichnis, ich habe versucht, die RewriteBase ohne Erfolg zu ändern, also habe ich die Hauptwebsite verlassen und das Unterverzeichnis an die obere Ebene angeschlossen, ich änderte mit allen Ratschlägen, die hier gegeben wurden, und es funktioniert jetzt. Ich hatte keine Zeit die anderen Routen zu überprüfen, aber bisher ist alles in Ordnung. Vielen Dank –

Verwandte Themen