rewritecond page limpiar index htaccess ellislab eliminar php .htaccess codeigniter

php - page - limpiar url codeigniter



Problema de CodeIgniter multi-aplicaciĆ³n.htaccess (1)

Tengo un problema con el archivo .htaccess de CodeIgniter y espero que alguien me pueda ayudar. No sé expresiones regulares o cómo usar .htaccess, ¡soy muy nuevo con esto!

Mi problema es:

Tengo esta estructura de archivos (multi aplicación):

- application - admin - site - system - index.php - admin.php

Y este .htaccess (que funciona bien en localhost!)

Options +FollowSymLinks Options -Indexes DirectoryIndex index.php RewriteEngine on RewriteCond $1 !^(index/.php|images|robots/.txt) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L,QSA]

Lo que quiero hacer es:

Acceda a mi sitio web (frontend) con http://www.mydomain.com/ Y a mi administrador (back-end) como http://www.mydomain.com/admin/

No sé por qué funciona bien en mi servidor local.

Espero que alguien pueda ayudarme.

UPDATE

Lo tengo para trabajar usando esto:

RewriteEngine on # If the user types "index.php" or "admin.php". RewriteCond $1 !^(index/.php|admin/.php|images|robots/.txt) # If the user types just "admin". RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^admin$ admin/.php [L,QSA] # If the user enter in any admin section, like "admin/section". RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^admin//(.*)$ admin/.php/$1 [L,QSA] # If the user types any site section, like "site/section". RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index/.php/$1 [L,QSA]

De esta forma puedo acceder a http://www.mydomain.com/admin o http://www.mydomain.com/admin/any-section (que apunta a "admin.php" en el directorio raíz)

Y puedo acceder a http://www.mydomain.com/ o http://www.mydomain.com/any-section (que apunta a "index.php" en el directorio raíz)

¡Gracias por la ayuda!


En primer lugar, esto es redundante:

RewriteCond $1 !^(index/.php|images|robots/.txt)

porque sus otras condiciones ya se ocupan de los archivos y directorios existentes, por lo que le sugiero que los elimine.

Su regla de reescritura es incorrecta si desea que / admin reescriba a admin.php, con su regla actual resultará en /index.php/admin. No mencionaste si ese es el problema, si es así:

RewriteRule ^/admin$ admin.php [L,QSA] RewriteRule ^(.*) index.php/$1 [L,QSA]

También puede depurar la reescritura utilizando RewriteLog: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog

Si eso no lo soluciona, describa el comportamiento actual y lo que espera, de lo contrario, es difícil ayudarlo.