La puta pelea eterna con .htaccess

Kr4n3oK

Buenas gente, vengo ya un poco mosca por que llevo bastante tiempo intentando crear reglas .htaccess y me como una mierda como el castillo de disney, a ver si me podéis arrojar algo de luz por que estoy ya por reventar la pantalla a ostias.

A ver, resulta que tengo un directorio en xampp, de pruebas, si, donde tengo la carpeta raíz de una web, sería así.

( htdocs de xampp )/carpeta/directorioraizdemiweb index.php

El resto de pestañas de mi web se distribuyen de tal manera, ejemplo :

directoriosraizdemiweb/contacto/index.php
directoriosraizdemiweb/soluciones/index.php
directoriosraizdemiweb/galeria/index.php

Bien, para crear un puto .htaccess que me funcione que debo hacer, la idea es la siguiente :

www.dominio.es/contacto/contacto en vez de www.dominio.es/contacto/index.php

¿Como lo debo hacer?, he probado de mil y una formas y no consigo una puta mierda, estoy muy cansado ya, he visto mil tutoriales en forma de videos y escritos y nada, seguramente sere mas tonto que bartolo.

Espero que algún alma caritativa me eche un brazo.

Saludos.

EnZo

Pues la regla que necesitas es muy sencilla.

RewriteEngine On
RewriteRule ^contacto/contacto/?$ contacto/index.php

Lo que no entiendo es porqué quieres que tu url lleve dos veces la misma palabra.
No es mejor: http://www.dominio.es/contacto -> http://www.dominio.es/contacto/index.php ?

2 respuestas
BLZKZ

#2 Un uso extraño de MVC? XD

Controlador contacto/ vista contacto (que no es la por defecto del controlador :S)

Kr4n3oK

Vale, ahora que me preguntas eso, te pregunto yo a ti, es posible dejarlo en un solo contacto? xDD

2 respuestas
D

#2 ese tipo de configuraciones, yo las suelo colocar en lso ficheros de configuracion del virtualhost del Apache en concreto. ¿No es mas ordenado así? No dejan de ser confguracions de Apache

1 respuesta
F

#4 Mira esta web por ejemplo.

1 respuesta
Kr4n3oK

#6 De todos modos el código pegado de 2 me sigue sin funcionar y también lo he tocado probando mas cosas, aún así no consigo el transforme.

RewriteEngine on
RewriteRule ^authuser/?$ authuser/index.php //Transformaría a loquesea/authuser la dirección real authuser/index.php, no?
1 respuesta
F

A simple vista esta bien ,la url http://www.dominio.es/authuser/ te tiene que llevar a http://www.dominio.es/authuser/index.php , mira url amigables y ves haciendo pruebas.

EnZo

#4 Si claro que se puede. El ejemplo de #7 que has hecho debería funcionarte. Si no te funciona es porque tienes el mod_rewrite desactivado o algo. Lo has comprobado? con phpinfo() puedes ver si está cargado el modulo.
Una vez que te funcione puedes usar una regla unica para todos (siempre y cuando sigan el mismo patron):

RewriteEngine On
RewriteRule ^([a-z]+)/?$ $1/index.php

#5 La configuracion de tu codigo y tus directorios da igual. Puedes organizarte tu arbol como quieras. Yo hablo unicamente de mostrar las urls mas amigables de cara al visitante. Con mod_rewrite puedes ponerlas como quieras independientemente de tu organizacion de ficheros y directorios.

#10 Ah vale, te he entendido como el culo xD
Si, se puede hacer de ambas. Lo que pasa que si no tienes acceso al httpd.conf porque no es un dedicado o un virtual, entonces hay que usar mod_rewrite. De todas formas yo veo mas comodo tener un archivo independiente que explique la configuracion de mi sitio. Las modificaciones que hago en httpd.conf son para todos los dominios. Pero esto es subjetivo :P

1 respuesta
D

#9 si, lo que yo decia que la configuración del mod_rewrite, la aplico en la configuración del Apache. No sabia que desde un .htaccess se podía aplicar este tipo de configs.

#9 bueno, en distros como Debian y sus deribados puedes crear de forma sencilla diferentes sites mediante la opcion virtualhost, con su fichero de configuración correspondiente. Ahí es donde suelo ponerlos. Pero lo de .htaccess me parece tb una alternativa muy buena.

2 respuestas
eXtreM3

Create, en el raíz de la carpeta, 3 archivos php

  • contacto.php
  • galeria.php
  • soluciones.php

Aplica esta regla en el htaccess

RewriteRule ^contacto$ contacto.php

(lo mismo para galeria y soluciones)

Y la url te quedará de la siguiente manera

tudominio.es/contacto
tudominio.es/galeria
tudominio.es/soluciones

saludos :P

elkaoD

#10 en distros como Debian no: con Apache2, ya sea Debian, CentOS o BSD.

1 respuesta
D

#12 creo recordar haber instalado ahce tiempo una CentOS, y al instalar Apache2 no te generaba la estructura de ficheros ya lista para sites y demas como hacia Debian.

Pero hablo de memoria.

1 respuesta
elkaoD

#13 hombre, depende de qué consideres estructura para sites. Yo lo primero que hago según instalo un Apache es cargarme el conf por defecto :) Pero vamos, que son directivas, no tiene nada de especial ni ninguna estructura de ficheros.

1 respuesta
D

#14 por ejemplo en Debian dispones de

/etc/apache2/sites-enabled y /etc/apache2/sites-available

Y ahi creas diferentes fichero s de configuración para cada site que crees.

En CentOS no recuerdo si tb se crea estos directorios o no

Lo bueno ymalo de Apache es lo caótico que es xD

1 respuesta
elkaoD

#15 /etc/httpd/conf.d/<nombresite>.conf, te metes las directivas apropiadas y a correr. El resto son chorradas para mariquitas :P

#16 no hace falta que lo jures. Estoy de CentOS hasta los mismísimos centos.

1 respuesta
D

#16 Debian que me malcria :D

1 respuesta
BLZKZ

#17 quítate ese avatar por favor xD
#19 a ver si lo estás poniendo en el sitio equivocado el .htaccess...

1 respuesta
Kr4n3oK

Nada, no consigo que funcione y el mod_rewrite está activado, algo me estoy pasando por encima..:S
#18 Lo estoy poniendo en la raíz donde comienza mi web, no es ahí?

2 respuestas
glolg

#19 no, la raiz de tu web está en htdocs, www o alguna de estas si no has cambiado la predeterminada. el archivo .htaccess se tiene que poner justo antes de la raiz de la página, como tú dices.

1 respuesta
kraneok

#20 Osea en la carpeta de antes de htdocs, sería donde están todas las carpetas de xampp no?

1 respuesta
Tunnecino

#21 No:

htdocs/miweb

1 respuesta
kraneok

#22 Pues nada, sigue sin fucionar xDDDD vaya puta mierda

1 respuesta
Tunnecino

#23 Pues algo haces mal tío xD

En local, en una de mis web de dev, tengo este htaccess (C:\xampp\htdocs[b]miweb[/b])

RewriteEngine on
Options +FollowSymLinks

# Limite de 25MB subida
LimitRequestBody 25000000

ErrorDocument 404 /sections/index.php

# Feed
RewriteRule ^feed/$ bin/rss.php
RewriteRule ^feed$ bin/rss.php

# Noticias
RewriteRule ^noticias/p-(.*)$ sections/index.php?page=$1
RewriteRule ^noticias/(.*)-(.*)/p-(.*)/$ sections/viewnews.php?id=$2&page=$3
RewriteRule ^noticias/(.*)-(.*)$ sections/viewnews.php?id=$2

etc... Y me va del carajo, no se por que a ti no te va bien. Revisa que cargas el mod_rewrite en el httpd.conf.

1 respuesta
kraneok

#24 xDD, el mod_rewrite está activado, es lo que me resulta extraño de todo esto xD
#24 Me podrías pegar aqui la configuración de tu .htaccess del archivo httpd.conf?

1 respuesta
Tunnecino

#25 No hay config del htaccess en el conf, solo activarlo:

Y para cargarlo tienes que quitar la # del conf, así:

- #LoadModule rewrite_module modules/mod_rewrite.so
+ LoadModule rewrite_module modules/mod_rewrite.so

Y con todo lo que te hemos puesto aquí debería de funcionar.

#26 Algo tienes mal o algo haces mal... si no, no tiene explicación.

2 respuestas
kraneok

#26 Así es como está, no lo comprendo xddddd

1 respuesta
elkaoD

#26 #27 sí hay config de .htaccess en el httpd.conf creo. Hay una directiva (o un módulo, no recuerdo) que tiene que estar activada si recuerdo bien.

Sube a https://www.refheap.com/ tu httpd.conf y lo revisamos. ¿Qué AllowOverride, Options y AccesFileName tienes habilitado para el directorio?

Estás usando Apache2, ¿no?

Yo pondría las directivas del .htaccess en un <Directory> del httpd.conf. Es la configuración recomendada si tienes acceso al conf, por temas de rendimiento.

http://httpd.apache.org/docs/2.2/howto/htaccess.html

1 respuesta
kraneok

#28 De todos modos, lo he subido a mi servidor de 1and1 también, para ver si ahí lo echaba a andar y tampoco me funcionan, algo estoy haciendo mal.

1 respuesta
elkaoD

#29 pero sube los archivos y así los vemos, copón!

Si es por temas de privacidad, pon XXX y listo.

2 respuestas