2016-07-05 40 views
1

Ich bin mit meinem System gesperrt ... Ich habe die Einstellungen in meiner Datei config.php geändert, um URLs mit Parametern zu haben. Plötzlich habe ich einen Produkt-Controller, der die ID anzeigt, die ich URL-Parameter übergeben.CodeIgniter URL Neuschreiben funktioniert nicht

http://localhost:8888/mywebsite/index.php?c=product&m=index&id_product=12

Diese URL funktioniert jetzt will ich eine URL des Typs erhalten:

http://localhost:8888/mywebsite/product/my-product-12

ich dies also in der .htaccess-Datei setzen:

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] 

Aber Die Seite wird angezeigt: Die angeforderte URL /index.php/product/my-product-12.html wurde nicht gefunden auf thi s Server.

Meine .htaccess-Datei:

#Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

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

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+).html$ index.php?c=product&m=index&id_product=$2 [L] 

Meine config.php:

<?php 

$config['base_url'] = 'http://localhost:8888/mywebsite/'; 
$config['index_page'] = ''; 
$config['uri_protocol'] = 'QUERY_STRING'; 
$config['url_suffix'] = ''; 
$config['enable_hooks'] = TRUE; 
$config['allow_get_array']  = TRUE; 
$config['enable_query_strings'] = TRUE; 
$config['controller_trigger'] = 'c'; 
$config['function_trigger']  = 'm'; 
$config['directory_trigger'] = 'd'; 
$config['rewrite_short_tags'] = FALSE; 

?> 

Antwort

0

Setzen Sie Ihre neue RewriteRule nach RewriteBase:

RewriteEngine on 
RewriteBase/

RewriteRule ^product/([a-zA-Z0-9\-]+)-([0-9]+)$ index.php?c=product&m=index&id_product=$2 [L] 

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

Weil Sie zuerst umschreiben zu index.php?c=product

+0

Danke für Ihre Antwort! Ich mache das und ich habe diese Fehlermeldung auf meiner Seite: nicht gefunden Die angeforderte URL /index.php wurde nicht auf diesem Server gefunden. – xenos92

+0

Versuchen Sie es jetzt ohne '.html'. Das war in Ihrem Code, aber nicht in Ihrer Beispiel-URL. – Croises

+0

Gleiches Ergebnis ... Ich verstehe nicht :( – xenos92