.htaccess Rewrite Rules Not Working (CodeIgniter)

Voici ce que je veux faire: j'utilise CodeIgniter, donc toutes les URL sont sous la forme de http://example.com/index.php/controller/function . Cependant, le script que j'ai écrit est un correcteur de liens essentiellement glorifié avec certaines fonctions de statistics embeddedes, de sorte que je souhaite que toutes les URL soient sous http://example.com/link . Cependant, j'aimerais également que le panneau d'administration du script soit disponible à http://example.com/admin/ . J'ai adapté le CodeIgniter "supprimer index.php des URL" exemple .htaccess pour correspondre à ma situation, et cela fonctionne correctement sur mon localhost (EasyPHP 5.3.9), mais lorsque je le télécharge sur le server de production (HostGator), tous les les requests pour le panneau d'administration sont traitées comme un lien régulier et transmises au controller de lien ( index.php/redirection/link ) au lieu du controller d'administration ( index.php/admin ). Voici mon .htaccess:

 <IfModule mod_rewrite.c> RewriteEngine On # Removes access to the system folder by users. # Additionally this will allow you to create a System.php controller, # previously this would not have been possible. # 'system' can be replaced if you have renamed your system folder. RewriteCond %{REQUEST_URI} ^system.* RewriteRule ^(.*)$ index.php/$1 [L] # When your application folder isn't in the system folder # This snippet prevents user access to the application folder # Submitted by: Fabdrol # Rename 'application' to your applications folder name. RewriteCond %{REQUEST_URI} ^application.* RewriteRule ^(.*)$ index.php/$1 [L] # Checks to see if the user is attempting to access the administration panel, # and if so sends the request to the admin controller RewriteRule ^admin/?$ index.php/admin/ [L] RewriteRule ^admin/([^.]+)/?$ index.php/admin/$1 [L] # Checks to see if the user is attempting to access a valid file, # such as an image or css document, if this isn't true it sends the # request to the redirect controller RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/redirection/link/$1 [L] </IfModule> <IfModule !mod_rewrite.c> # If we don't have mod_rewrite installed, all 404's # can be sent to index.php, and everything works as normal. # Submitted by: ElliotHaughin ErrorDocument 404 /index.php </IfModule> 

Y a-t-il quelque chose que je fais mal? Toute aide ou suggestion serait appréciée!

2 Solutions collect form web for “.htaccess Rewrite Rules Not Working (CodeIgniter)”

Supprimez les lignes ci-dessous de .htaccess

 RewriteRule ^admin/?$ index.php/admin/ [L] RewriteRule ^admin/([^.]+)/?$ index.php/admin/$1 [L] 

Ajoutez cette ligne à deux lignes.php

 $route['admin']="<directory_name_in_contollers>/<controller_name>"; $route["admin/(:any)"]="<directory_name_in_contollers>/$1"; 

Exemple:

 $route['admin']="admin/welcome"; $route["admin/(:any)"]="admin/$1"; 

Ici welcome.php est un controller place à application\controllers\admin\welcome.php

Au-dessous de la command "RewriteEngine On" mettez " RewriteBase / " ou " RewriteBase / app_name / " si votre application se trouve dans un sous-directory "app_name".

J'espère que cela pourra aider.

Alfradique

  • VirtualAlloc () a échoué: Pas assez de stockage disponible pour traiter cette command
  • PHP ne peut pas charger la bibliothèque de la bibliothèque dynamic
  • Support SSL pour PHP 5.3.3 et Apache
  • Serveur de messagerie et serveur web sur différents serveurs
  • php4 et php5 set, même extension, restreignez 4 à un dossier
  • Le courrier sortant de linux n'est pas livré
  • php écrit des erreurs obsolètes au journal d'erreurs apache
  • php.ini semble être totalement ignoré
  • HHVM avec FastCGI vs Téléchargement via WordPress
  • Comment faire passer le projet à partir de la machine locale vers le server Linux Exrernal
  • Apache PATH très long avec des inputs en double
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.