.htaccess reescrever URL para item multi-parâmetro

1

Eu passei as últimas 10 horas da minha vida neste & estou correndo em círculos, então esperava que alguém pudesse me ajudar.

Eu quero que um URL específico seja carregado assim:

http://example.com/f/2011/image.png?attribute=small

Quando um URL em um formato como esse é acessado, gostaria de reescrevê-lo para acessar o servidor como:

http://example.com/generate.php?f=2011/image.png&attribute=small

Com base no acima, minha pergunta é dupla:

  1. Como posso reescrever o URL no htaccess para atender aos meus requisitos acima?
  2. Se o URL original não tiver o parâmetro de string de consulta de atributo, como posso garantir que o atributo seja falso / em branco / etc quando atingir o servidor via htaccess?
por MrCS 23.11.2011 / 08:13

3 respostas

2

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]

Os dois RewriteCond podem ser omitidos. Mais informações:

RewriteRule

sinalizador QSA

    
por 23.11.2011 / 09:19
0
RewriteEngine On

RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]
    
por 23.11.2011 / 09:22
0

Aqui está uma que tem mais chances 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, diga-me se funciona

    
por 23.11.2011 / 12:20