Yo en el minuto 6 :v
Debugging
¿Cómo hacer debugging en PHP?
La función dd() en PHP
Cookies y sesiones
¿Qué son las cookies?
Trabajando con cookies
¿Qué son las sesiones?
Trabajando con sesiones
Manejo de excepciones
¿Qué son las excepciones?
Implementando try/catch
Revisando los métodos de las excepciones
Crea tus propias excepciones
Trabajando con fechas
¿Cómo trabajar con fechas en PHP?
Fechas con funciones vs. fechas con POO
Funciones para fechas
Más funciones para fechas
Expande tu arsenal de funciones para fechas
Modularización
Modularización del código
Namespaces
PSR-4 y Composer
Front Controller
El archivo .htaccess
Traits
Cierre
¿Quieres aprender sobre bases de datos?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Convierte tus certificados en títulos universitarios en USA
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Aportes 14
Preguntas 4
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"
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
mod_rewrite
. Está instalado por defecto pero deshabilitado por defecto. Se debe usar a2enmod
para 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
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 “default 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.
En Ubuntu no me aparecía ninguna linea que dijera “LoadModule 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
mas claro imposible
Mis notas de la clase:
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’s 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
*/
Creo que es la clase que muchos nos hacia falta
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?