• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

andrepcg

Sistema de páginas [htaccess]

15 mensagens neste tópico

estou a testar uma forma de navegação para organizar melhor o meu website. é o seguinte.

tenho uma pasta chamada "u" com um ficheiro index.php lá dentro.

quando faço /u/index.php?n=blablabla  ele faz o que eu quero precisamente.

por acaso voces sabem programar o .htaccess para que quando faça /u/blablabla  tenha o mesmo efeito que  /u/index.php?n=blablabla  ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

arranjei este mas nao está a funcionar.

      ErrorDocument 404 /index.php

      RewriteEngine on

      RewriteRule ^u/([^/\.]+)/?$ /user.php?n=$1 [L]

tenho o ficheiro user.php no inicio com $_GET[n] e faz tudo muito bem, mas nao consigo aceder a partir de u/blablabla

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adiciona isto ao .htaccess da raíz do teu site

RewriteRule ^/u/(.*) /u/index.php?n=$1

Certifica-te tambem que isto lá está:

RewriteEngine on

Se não estiver adiciona, tem que aparecer antes que a rewrite rule.

Mesmo que isto funciona à primeira aconselho-te vivamente a pesquisares no google:

mod_rewrite tutorial

EDIT: no teu esqueceste-te de incluir a path.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ok, obrigado! ja funcionou. penso que era da path.

outra coisa. isto faz com que quando eu acesse /u/blablabla  ele redirecciona para user.php?n=blablabla

sabes fazer com que isso eu vez de redireccionar, aparece na barra de endereço o que eu coloquei antes de redireccionar?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isto não redireciona. Isto só reescreve o url que é enviado para o serviço do apache. Ou seja, é suposto funcionar como tu estás a dizer.

Talvez tenhas alguma configuração do apache que aplica redirecionamento às rewrite rules em vez de simplesmente enviar a resposta. Não faço idea se isso existe, mas é a explicação mais lógica que consigo encontrar para esse comportamento.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nao consigo perceber isto... já tentei de tudo e ele nao faz rewrite, faz apenas redirect... será que tem a ver com o script php?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Falta um [L] no final da linha para acontecer o que tu queres salvo erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não... o L é só para dizer que essa regra é a última que vai ser aplicada a um URL para evitar loops infinitos, ou para decidir que resposta embiar em caso de existirem regras ambíguas.

Tens alguma regra antes com um [R] por exemplo?

Ou não escreveste RedirectRule em vez de RewriteRule?

O melho que tens a fazer é mesmo contactar o teu serviço de alojamento, o código que eu te dei é supost fazer um rewrite e não um redirect.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho isto no file:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^u/([A-Za-z0-9-]+)?$ http://zzzzzzzz.info/zzzzzz/user.php?n=$1 [L]

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

contactei o serviço de alojamento (ptservidor) e disseram que nao me podiam ajudar. teria de colocar a minha duvida em forums.

será que pode ser do script php?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

já sei qual o meu problema. é por estar a usar uma sub-directoria.

nao sei qual o problema mas assim que passei para uma directoria principal, tudo ficou bem.

obrigadao a todos.

PS: ja agora, como faço para usar isso numa sub-directoria?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora