lordfokas Posted March 1, 2013 at 03:16 AM Report #497483 Posted March 1, 2013 at 03:16 AM (edited) Antes de mais, tenho a consciência que este não é o lugar perfeito para colocar questões deste género, mas à falta de melhor sitio para colocar uma questão acerca da configuração do Apache, e visto que isto depois vai acabar por ser processado por PHP, resolvi-me a deixar a questão aqui. Se for necessário, movam-me o tópico para um lugar mais propriado. Eu tenho bastante experiência com PHP, mas enfim, não me vou gabar. No geral tenho a certeza do que estou a fazer, e não sou apenas mais um à procura de alguém que lhe faça o trabalho da escola. Tendo isto dito, passemos então à questão: Estou a desenvolver um website para uma oficina, que vende peças em segunda mão. É possível filtrar os resultados da base de dados pela categoria e pelas etiquetas (tags) do artigo. Como daria um aspecto mais profissional ter 'flat links', os meus links estão neste formato: dominio.tld/?a/b/c/f/k/q, mas mesmo assim não tem aquele aspecto. Eu tentei usar o mod_rewrite, mas não pesco nada daquilo, e o pouco que mexi nos ficheiros .htaccess foi com tutoriais ao lado, preciso de alguma orientação. O meu objectivo é ter um URL do género loja.com/Artigos/Categoria/Motor/Etiqueta/B18 ser transformado em loja.com/?Artigos/Categoria/Motor/Etiqueta/B18 Eu poderia muito bem por cada valor no $_GET, mas os links na verdade são um pouco mais complexos que isto (a ordem, tamanho, quantidade e tipo dos argumentos é variavel), pelo que prefiro processar a query string no PHP. Estou até a considerar alterar os links para uma coisa com um pouco mais de sentido, como loja.com/Artigos/Categoria:Motor/Etiqueta:B18. Mas isso não faz diferença para a questão. Sei que é relativamente simples fazer uma alteração deste género, mas eu tenho uma restrição: Todos os meus recursos são guardados algures na pasta resources. Por exemplo, resources/css/ ou resources/js. Esse tipo de pedidos deve ser ignorado. Eu queria fazer isto por mim, mas as minhas capacidades para regex não são do melhor, e atrofiei um bocado com o assunto. Resumindo: Para todos os caminhos que não comecem com 'resources', redireccionar para o ficheiro index.php com o caminho pedido na query string. Se alguém me pudesse ajudar com isto, seria bom. Não é uma coisa essencial, mas o aspecto conta. Desde já obrigado. Edited March 1, 2013 at 01:33 PM by brunoais Tópico movido de: PHP
yoda Posted March 1, 2013 at 04:45 AM Report #497484 Posted March 1, 2013 at 04:45 AM Eu resolveria isso com um sistema em PHP que soubesse identificar parte dos argumentos iniciais como indicadores do que fazer com o request (que é o que todas as frameworks de PHP fazem hoje em dia). Se por exemplo o primeiro parâmetro do uri for uma classe e o segundo parâmetro do uri dor uma função dessa classe, ficas com uma melhor orientação. Tenho código feito para exemplificar este processo, se quiseres é só dizer. Quanto ao htaccess, existem uns pela net fáceis de entender e funcionais na maioria dos servidores, exemplo: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT] Outra coisa, não sei se é mesmo assim que queres, mas não precisas de ter o "?" no uri, podes usar a estrutura que quiseres (mesmo sem ele) e funciona na mesma. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
lordfokas Posted March 1, 2013 at 05:23 AM Author Report #497485 Posted March 1, 2013 at 05:23 AM (edited) Eu andei a experimentar, e consegui um quase sucesso, no meio de uma carrada de internal server errors e afins. Mas esta alteração ao URL tem alguns problemas, nomeadamente, como todos os URIs para a pasta resources são caminhos relativos, isso iria fazer com que o browser fizesse pedidos em subpastas que nao existem. É um problema que posso resolver facilmente quando o site estiver acabado e no servidor, usando um subdominio apenas para os recursos, e caminhos absolutos para tudo. Já agora, este tipo de alteração tem algum tipo de impacto a nivel de SEO? O cliente é uma pessoa com quem me dou, e ter SEO em condições poderia aumentar o sucesso do site, que é bom para o negócio, e é um negócio no qual tenho interesse genuino. E para dizer a verdade, um site deste género tem bastantes problemas desse tipo, porque ordenar e pesquisar conteudo faz com que o mesmo conteudo apareça varias vezes em URLs diferentes, o que é mau para o Page Rank. Acho que o melhor por agora é concluir o site, e aplicar as optimizações que forem possiveis no final. Até lá, pode ser que tenha uma epifania e perceba como lidar com esses problemas conceptuais todos... Obrigado pela ajuda 😉 Edited March 1, 2013 at 05:24 AM by lordfokas
yoda Posted March 1, 2013 at 09:47 AM Report #497492 Posted March 1, 2013 at 09:47 AM Acho que estás a tentar reinventar a roda e umas horas de leitura pela web apagavam muitas dessas dúvidas. O htaccess que te mostrei sabe lidar com os ficheiros se é isso que lhe estás a pedir, só vai tratar o uri como "não-ficheiro" se ele não existir, não é preciso ter subdominios para esses ficheiros públicos. A nível de SEO funciona bem desde que evites usar mais que um uri diferente para apresentar a mesma informação. before you post, what have you tried? - http://filipematias.info sense, purpose, direction
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now