Acabo de pasar las últimas 10 horas de mi vida en esto y estoy dando vueltas en círculos, así que esperaba que alguien pudiera ayudarme.
Quiero que una URL específica se cargue así:
Cuando llega una URL en un formato como este, me gustaría reescribirla para que llegue al servidor como:
http://example.com/generate.php?f=2011/image.png&attribute=small
Basado en lo anterior, mi pregunta es doble:
- ¿Cómo puedo reescribir la URL en htaccess para cumplir con los requisitos anteriores?
- Si la URL original no tenía el parámetro de cadena de consulta de atributo, ¿cómo puedo garantizar que el atributo sea falso/en blanco/etc. cuando llegue al servidor a través de htaccess?
Respuesta1
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^f/(.*)$ generate.php?f=$1 [L,QSA]
Los dos RewriteCond
pueden omitirse. Más información:
Respuesta2
RewriteEngine On
RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]
Respuesta3
Aquí hay uno que tiene más posibilidades de funcionar:
RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^([a-z]+)/([0-9]+)/image\.png$ /generate.php?f=$1 [QSA,L]
Por favor dime si funciona