.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

  • Découvrir quelle version PHP un server distant fonctionne
  • Surveiller le server à l'aide de l'écran de baie LCD 5.25 - Comment?
  • ne peut pas accéder au site sans WWW dans l'url
  • Laissez IIS 7 renvoyer des files php en tant que file html simple
  • Apache "OPTIONS * HTTP / 1.0" exécutant 100% CPU - Runaway httpd process
  • L'en-tête Content-Length n'existe pas
  • Conflit avec 3 RewriteRules différents dans .htaccess?
  • Activez php pour exécuter des files .php qui commencent avec juste <?
  • Comment append l'en-tête List-Unsubscribe correctement?
  • "Autorisation refusée" & 500 Erreur de server interne servant PHP dans Mac OS X
  • comment nginx sert de gros files
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.