with rewriterule htaccess ejemplos domain php .htaccess mod-rewrite

php - domain - rewriterule htaccess ejemplos



mod_rewrite, php y el archivo.htaccess (2)

Estoy codificando un pequeño CMS para comprender mejor cómo funcionan y para aprender algunas cosas nuevas sobre PHP. Sin embargo, he encontrado un problema.

Quiero usar mod_rewrite (aunque si alguien tiene una mejor solución, estoy dispuesto a probarlo) para producir URL limpias agradables, entonces site.com/index.php?page=2 puede ser site.com/tools

A mi entender, necesito modificar mi archivo .htaccess cada vez que agrego una nueva página y aquí es donde me toco un problema, mi PHP me sigue diciendo que no puedo actualizarlo porque no tiene los permisos. Un poco de chmod revela que incluso con 777 permisos no puede hacerlo, ¿me falta algo?

Mi fuente para las instrucciones de mod_rewrite es actualmente esta página aquí en caso de que sea importante / útil.


Su PHP debería, por razones muy obvias, no poder modificar .htaccess . Incluso si logras que funcione, no estoy seguro si es sabio.

¿Qué tal si usamos una configuración más abstracta con respecto a las reglas de mod_rewrite? Define tu patrón general de URL, como te gustaría usarlo. Por ejemplo:

/object/action/id

Luego, escriba un conjunto de reglas que redirijan las solicitudes HTTP a una página PHP, que a su vez toma la decisión de qué página ejecutar (por ejemplo, incluyendo el script PHP correspondiente).

RewriteRule ^/(/w+)/?(/w+)?/?(/d+)?$ /index.php?object=$1&action=$2&id=$3 [nocase]

De esta forma no tendrías que actualizar .htaccess muy a menudo y ser flexible.


Un enfoque es reescribir todo en un guión de manejo

RewriteEngine on RewriteBase / # only rewrite if the requested file doesn''t exist RewriteCond %{REQUEST_FILENAME} !-s # pass the rest of the request into index.php to handle RewriteRule ^(.*)$ /index.php/$1 [L]

así que si tiene una solicitud para http: // yourserver / foo / bar /

lo que realmente obtienes es una solicitud a http: //yourserver/index.php/foo/bar - y puedes dejar index.php para decidir qué hacer con / foo / bar (usando $ _SERVER [''PATH_INFO''] - tom )

Solo necesita modificar .htaccess la primera vez. Todas las solicitudes futuras de archivos inexistentes se pueden manejar en PHP.

También puede encontrar útil los documentos de mod_rewrite , pero manténgalo simple o prepárese para perder mucho sueño y pelo rastreando errores oscuros.