Pergunta

Eu tenho um diretório fora do webroot que é usado para armazenar imagens enviadas a partir de um sistema de administração separado. As imagens são armazenadas no seguinte formato:

filepath/writable/images/00/00/23/65/filename-236581.jpg

(onde o webroot é filepath / html)

... por exemplo. Aqui, 236 é o ID da imagem no banco de dados, eo sistema de arquivos é dividido em diretórios numerados para parar mais de 100 inodes de ser usado dentro de um diretório.

Eu quero ser capaz de acessar estes a partir do servidor Web front-end, como este:

http://(server)/filename-236581.jpg

Onde nome do arquivo é uma seqüência otimizado-seo, o mesmo que o nome do arquivo real.

posso obter mod-rewrite para reescrever a URL para que ele contenha os diretórios extras numeradas, e eu posso obter alias para redirecionar a solicitação para o diretório graváveis ??/ imagens, mas não posso fazer as duas coisas ao mesmo tempo. Se eu colocar tanto o alias e directivas mod_rewrite em, ele ignora o alias e log de erro reclama que não consegue encontrar filepath / html / enviados por imagens.

Aqui está o que eu tenho até agora:

RewriteRule ^(.*)\/([^\/]*)-([0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/00/00/00/00/$2-$3.$4 [L,NC]

... e assim por diante, todo o caminho até:

RewriteRule ^(.*)\/([^\/]*)-([0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])\.(gif|jpg|jpeg|png)$ /uploaded-images/$3$4/$5$6/$7$8/$9$10/$2-$3$4$5$6$7$8$9$10$11$12.$13 [L,NC]

alias /uploaded-images "filepath/writable/images"

Retirar o [L] não faz diferença.

Foi útil?

Solução

A [L] significa passado.

O que você realmente precisa usar bem é o [PT] bandeira para indicar que o caminho resultante de sua regra de reescrita devem ser repassados ??aos próxima manipulador que no seu caso é o apelido directiva.

Como a tag [PT] também implica o [L] tag você não precisar mais [L] cabeceira.

Outras dicas

Isso [L] você tem após o meio RewriteRule "Last"

Para ser honesto, eu acreditava que isso só significou mais linhas RewriteRule seria ignorado, mas pode valer a pena conferir.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top