.htaccess 1and1 CodeIgniter

xCoNDoR

Hola MV,

Si de por si ya soy malo con los htaccess, ahora con 1and estoy mas perdido aún.
En mi anterior hosting, con esto me valía para eliminar el 'index.php' de las URL en CodeIgniter:

Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [L]

Pero con 1&1 nada..
Alguno tiene contratado 1and1 y puede ayudarme a solucionar esto ?

Gracias

BLZKZ

ahora te pasteo el .httaccess :3

RewriteEngine on 
RewriteCond $1 !^(index.php|css|js|images|robots.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L]

Si no me equivoco la segunda linea era para poder hacer includes cd js/img/css desde posiciones absolutas o algo asi xD

1 respuesta
xCoNDoR

#2 Eso es todo lo que tienes en el htaccess? Lo he probado tal cual y ni el index.php me carga por defecto al entrar en midominio.com

No habrá que tocar nada en el admin panel no?

1 respuesta
BLZKZ

#3 pues es lo que tengo xD y me va perfecto. No he tocado nada mas (bueno que mi dominio apunte a la carpeta donde está codeigniter y fin)

1 respuesta
xCoNDoR

#4 Explicame un poco plis, a ver si he liado algo.

En tu host tienes una carpeta a la que apunta tu dominio. Esa carpeta tiene el htacess dentro, o es el directorio raiz el que tiene el htaccess ?

Si el directorio raiz del dominio tiene su propio htaccess diferente al de la carpeta a la que apunta el dominio, que tiene dentro ?

1 respuesta
BLZKZ

#5 a ver, tengo la carpeta code, que dentro tiene .settings, application y demás cosas de codeigniter (incluido el .htaccess que te he pasado). Luego en la configuracion tengo puesto que www.dominio.es tenga de destino /code

el htaccess esta en /code (/code/.htaccess)

Edit: Pues la raiz no tiene ningun .htaccess pero creo que aunque lo tuviera, el que esta dentro de una carpeta lo sobreescribiria

xCoNDoR

Pues nada, no hay manera. No me carga ni el index.php automáticamente al entrar en la raiz.

Sigo aceptando sugerencias :S

1 respuesta
BLZKZ

#7 como has configurado el CI?

xCoNDoR

#7 Pues he eliminado el index.php del config.php, utilizo routes.php para las entradas y poco mas creo. Es más, he copiado y pegado todo tal cual de mi otro hosting en el que todo funciona bien con el htaccess que puse en #1

SicKneSs
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !^(/index\.php|/images|/js|/css)
  RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>

yo por ejemplo trabajo en local en subdirectorios independientes por cada proyecto, por lo que si tienes www/proyecto/index.php tendrías qu modificar la última sentencia a

 RewriteRule ^(.*)$ /proyecto/index.php?/$1 [L]

Luego en tu config.php:

$config['index_page'] = ''

;)

1 respuesta
xCoNDoR

#10 Eso lo utilizas en 1and1 ?

Es que a mi con lo de #1, en cualquier hosting me funciona. Lo único que 1and1 debe funcionar algo de manera diferente y habrá que hacerlo de alguna manera especial. Fuera de ahí, con #1 me basta.

PiradoIV

Este es el .htaccess oficial que recomiendan los de CodeIgniter:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

#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 a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$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> 

Más info en su Wiki.

1 respuesta
varuk

#12 pirado , ese recomiendan para cualquier web de forma general? Para sitios con wordpress o incluso si el blog esta instalado en una subcarpeta de la raíz?

1 respuesta
PiradoIV

#13 Hombre, no creo, wordpress llevará su .htaccess concreto, tendrán otras necesidades, pero este que recomiendan siempre me ha ido perfecto en CodeIgniter.

xCoNDoR

Solucionado. Cuento por si le sirve a alguien:

En mi aplicación en CI, guardo en un archivo php las rutas que redirigen al artículo seleccionado.
Al pasar de un dominio a otro no transferí ese archivo con las rutas por lo que al intentar acceder a ellas pues generaba error.

Después, el .htaccess que he dejado es el siguiente:

Options -MultiViews 
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
3 meses después
KoRMuZ

Para no abrir otro hilo.

Tengo un host en 1and1 y con el .htaccess que tengo no me funciona absolutamente nada, solo el default_controller, cuando voy a cualquier otro, me dice que notfound.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /micarpeta

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
 
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 index.php
</IfModule>
1 respuesta
eXtreM3

#16 copio y pego un htaccess propio que funciona en 1&1

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch

# Reescritura activada, para formatear URLs
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


##################################################
# URL AMIGABLES
##################################################
#mis urls


##################################################
# ASEGURAR HTACCESS
##################################################
<Files .htaccess>
order allow,deny
deny from all
</Files>
1 respuesta
KoRMuZ

#17 pero eso no quita el index.php de las URL no ?

2 respuestas
eXtreM3

#18 sí. Una de las reglas que tengo es esta

RewriteRule ^noticia/(.*)/(.*)$ ver-noticia.php?id=$1&slug=$2

y queda tal que así

midominio.com/noticia/1/titulo-de-la-noticia

pd: tuve MUCHOS quebraderos de cabeza en su día, de hecho posteé aqui en mv y había un thread con varias respuestas, si usas el buscador seguro que lo encuentras. El servicio tecnico y soporte de 1&1 da PUTA PENA.

edit: http://www.mediavida.com/foro/9/htaccess-y-1and1-420558

1 respuesta
eXtreM3

#18 LOL PERDÓN, he copiado uno que no era xD

Options -MultiViews
#Options +SymLinksIfOwnerMatch

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ $1.php [L]

Ese es el bueno 100% seguro, recién bajadito del FTP.

KoRMuZ

#19 pero yo tengo directamente las url en plan midominio.com/index.php/noticia/1

Lo que quiero es quitar el index.php y poder cargar la noticia escribiendo midominio.com/noticia/1

KoRMuZ

Si alguien puede asesinarme que lo haga, por favor. Tenía el htaccess donde no era >.< puto ftp

10 meses después
M

Hola, llevo mucho tiempo buscando la manera de que en las url largas sacar el index.php, sin solución.
Por favor , cómo lo habéis conseguido ???
en el ftp, el joomla esta dentro de una carpeta, pero el dominio esta dirigido a la carpeta. Se supone que el .htaccess esta en la carpeta donde están todos los archivos de joomla no?.

Gracias.

eXtreM3

El htaccess va en el raíz desde donde quieras empezar el rewrite.

kraneok

Solo vengo a decir que el .htaccess toca la poya lo mas grande, me voy, ya me tocará de nuevo a mi lidiar con el. xd

Usuarios habituales