No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

El archivo .htaccess

20/22
Recursos

Aportes 12

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Yo en el minuto 6 :v

De este modo debe quedar tu VirtualHost en opensuse

<VirtualHost *:80>
    ServerName www.cursoplatzi.test
    DocumentRoot /srv/www/htdocs/platzi-php/htaccess
    <Directory "/srv/www/htdocs/platzi-php/htaccess">
        Options FollowSymLinks
        AllowOverride All
    </Directory>
</VirtualHost>

Y tus APACHE_MODULES en /etc/sysconfig/apache2 para habilitar el mod_rewrite

APACHE_MODULES="actions alias auth_basic authn_core authn_file authz_host authz_groupfile authz_core authz_user autoindex cgi dir env expires include log_config mime negotiation setenvif ssl socache_shmcb userdir reqtimeout   php7 rewrite"

Dejo un tutorial oficial de Apache para el uso del .htaccesshttps://httpd.apache.org/docs/trunk/es/howto/htaccess.html

Excelente explicacion !! 鉁
.
Desmenuzando linea por linea se entiende cual era la magia que estaba haciendo este archivo.
.
Esta era la clase que faltaba !! Este archivo siempre habia sido un dolor de cabeza en mis proyectos 馃樀

Seria bueno que haya un curso de Apache y Nginx en platzi pls

En Ubuntu no me aparec铆a ninguna linea que dijera 鈥淟oadModule rewrite_鈥︹. La forma que encontr茅 para hacerlo es editando el Virtual Host.
Les dejo dos links donde se pueden ver los pasos a seguir:
https://www.digitalocean.com/community/tutorials/how-to-rewrite-urls-with-mod_rewrite-for-apache-on-ubuntu-20-04
https://help.ubuntu.com/community/EnablingUseOfApacheHtaccessFiles

Haber leido eso me alegr贸 el d铆a jajaja

Mis notas de la clase:

El archivo .htaccess

Se utiliza para reescribir mediante condiciones la url de nuestro sitio web, esto nos permite utilizar la definici贸n de Front Controller pero a su vez teniendo URL鈥檚 m谩s limpias, f谩ciles de leer y buenas para SEO.

El proceso que sigue el rescribir la url es:

  • Tomar la url ingresada por el usuario

  • La url pasa por el archivo htacess y se somete a las reglas y condiciones registradas en el mismo

  • El resultado es enviado al Front Controller para que pueda mostrar al usuario el contenido que solicita

RewriteEngine On //Habilitamos la sobre-escritura

RewriteCond %{REQUEST_FILENAME} !-f //Condici贸n para el caso de que no se encuentre el archivo
RewriteCond %{REQUEST_FILENAME} !-d //Condici贸n para el caso de que no se encuentre el directorio


RewriteRule ^(.*)$ index.php?page=$1 [L]
/**
Donde: ^(.*)$ es una expresi贸n regular, ^ indica el inicio de la expresi贸n y $ el final
.*: es la expresi贸n que indica que cualquier caracter puede ser escrito en la url y se puede repetir cualquier cantidad de veces, es decir, que aplicar谩 para cualquier cosa que se escriba en la url
(): Los parentesis indican que todo lo que se escriba en la url se guarda en una variable que se utilizara luego en la sentencia de la condici贸n, esto se almacena en $1
index.php?page=$1 : Es la condici贸n de redirecci贸n, a donde enviamos al usuario seg煤n como lo definamos en le programa. El valor $1 representa la variable donde se almaceno el contenido de la expresi贸n regular que se coloc贸 dentro de los parentesis.
El page en la condici贸n corresponde a la variable que vamos a pasar al par谩metro $_GET
*/

El archivo .htaccess

Ubuntu 22.04, php 8.2, apache 2.4

  1. Lo primero es decirle a Apache que necesitamos activar el mod_rewrite. Est谩 instalado por defecto pero deshabilitado por defecto. Se debe usar a2enmodpara habilitarlo:
sudo a2enmod rewrite

Eso activar谩 el modulo o alertara de que el modulo esta activo. Para hacer efectivos los cambios se debe reiniciar Apache.

sudo systemctl restart apache2

Info extraida de internet

Para uno de los multiples dominios alojados en un servidor Debian 9, necesit茅 configurar el archivo .htaccess. Esta opci贸n no viene habilitada por defecto, y me costo mucho dar con la soluci贸n. Despu茅s de muchos intentos, pruebas y errores, a continuaci贸n detallo el procedimiento que me parecio el m谩s correcto (este procedimiento al parecer es especifico para Debian 9, puede variar el nombre y la ubicaci贸n del archivo en otras versiones de Linux)

Editar el archivo apache2.conf

sudo nano /etc/apache2/apache2.conf

en la secci贸n de 鈥渄efault security model鈥 encuentran la siguiente configuraci贸n:

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Cambiar a ->

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

Salimos con control + x, grabamos con Y y apretamos [enter]. Finalmente para que los cambios tengan efecto, reiniciamos el servicio de apache2.

$ sudo service apache2 restart

Verificamos que el servicio se este ejecutandose correctamente:

$ sudo service apache2 status

Listo! Los archivos .htaccess funcionan para todos los dominios. Si quieren que algunos dominios, no tengan la funcionalidad de utilizar sus respectivos .htaccess, la configuraci贸n se debe hacer por cada directorio de dominio.

Creo que es la clase que muchos nos hacia falta

mas claro imposible