tibi Posted October 17, 2009 at 04:44 PM Report Share #292087 Posted October 17, 2009 at 04:44 PM Boas tardes. Alguém me pode dar uma dica como hei-de alterar o url da página. gostava que em vez de index.php?pagina=home ficasse nomesite/home Tenho visto isso em alguns sites, mas não consigo encontrar nada que me ajude. Também pode acontecer que seja eu a fazer uma má pesquisa... ? Obrigado E ja agora, como iria ficar o link? <ahref = "index.php?pagina=home">!!?? ou sera mudado tambem!? Link to comment Share on other sites More sharing options...
trmanco Posted October 17, 2009 at 04:49 PM Report Share #292090 Posted October 17, 2009 at 04:49 PM Tens que fazer URL rewriting pelo .htaccess http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html E depois alterar o URL no ficheiro php/html Link to comment Share on other sites More sharing options...
tibi Posted October 17, 2009 at 05:16 PM Author Report Share #292096 Posted October 17, 2009 at 05:16 PM Ja encontrei mais informação sobre mod_rewrite, videos até. Quando se pesquisa logo pelo nome é mais facil. Obrigado. Link to comment Share on other sites More sharing options...
softklin Posted October 17, 2009 at 05:54 PM Report Share #292104 Posted October 17, 2009 at 05:54 PM Exactamente, é o mod rewrite. Também existe uma opção em PHP, com uma abordagem diferente, para quem não tem a oportunidade de mexer na opção mod_rewrite: http://www.wiki.portugal-a-programar.pt/dev_web:php:htaccess Deixo apenas aqui para que fique de referência a utilizadores sem mod_rewrite. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
trmanco Posted October 17, 2009 at 07:30 PM Report Share #292116 Posted October 17, 2009 at 07:30 PM Exactamente, é o mod rewrite. Também existe uma opção em PHP, com uma abordagem diferente, para quem não tem a oportunidade de mexer na opção mod_rewrite: http://www.wiki.portugal-a-programar.pt/dev_web:php:htaccess Deixo apenas aqui para que fique de referência a utilizadores sem mod_rewrite. Interessante essa classe... Link to comment Share on other sites More sharing options...
yoda Posted October 19, 2009 at 03:43 PM Report Share #292351 Posted October 19, 2009 at 03:43 PM Exactamente, é o mod rewrite. Também existe uma opção em PHP, com uma abordagem diferente, para quem não tem a oportunidade de mexer na opção mod_rewrite: http://www.wiki.portugal-a-programar.pt/dev_web:php:htaccess Deixo apenas aqui para que fique de referência a utilizadores sem mod_rewrite. Não é bem sem htaccess, é simulando o mesmo. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
tibi Posted October 24, 2009 at 05:05 PM Author Report Share #293197 Posted October 24, 2009 at 05:05 PM Boas. Volto aqui a escrever, pois ando com problemas nisto do rewrite... Faço pesquisas, ja vi videos mas não consigo encontrar algo que me ajude nos links. Antes de mais, o meu problema. Ando a experimentar um trabalho que tenha 2 linguas ("pt" e "en" ). Para navegar nas páginas uso: index.php?page=home (home, teste, teste2,...) Para alterar a lingua uso: ?lang=pt (pt, en) Prentendia alterar 127.0.0.01/mod_rewrite/index.php?lang=pt&page=home para algo como 127.0.0.01/mod_rewrite/pt/home Tenho um htaccess com as linhas: RewriteEngine On RewriteRule ^page/(.*)$ index.php?page=$1 RewriteRule ^lang/(.*)$ index.php?lang=$2 No php <? $get = explode("/", $_SERVER['REQUEST_URI']); echo "<pre>"; print_r($get); echo "</pre>"; switch ($_GET['page']) { case "home": include 'home.php'; break; case "teste": include 'teste.php'; break; case "teste2": include 'teste2.php'; break; default: include 'home.php'; break; }; ?> Não estou a conseguir meter isto a trabalhar. Se alterar na URL a variavel, carrega me as paginas 127.0.0.01/mod_rewrite/page/home (home, teste, teste2) Mas o que devo meter nos links?? Se meter <a href="teste">, não carrega, se meter no link <a href="page/teste"> ao clicar nos links fica: 127.0.0.01/mod_rewrite/page/page/teste :bored: E também quando entro pela primeira vez no trabalho, não me aparece 127.0.0.01/mod_rewrite/page E isto só em relação a "page". Ainda me falta depois trabalhar com a variavel do "lang" Possivelemte tenho que alterar ou criar regras novas no htaccess Podiam me dizer o que fazer, ou onde me basear para compreender isto melhor, em relação aos links e não so.. Obrigado Link to comment Share on other sites More sharing options...
yoda Posted October 24, 2009 at 07:45 PM Report Share #293215 Posted October 24, 2009 at 07:45 PM Experimenta usar condições, e não só regras. Lê mais sobre mod_rewrite. É uma coisa complicada de se fazer, e varia muito de server para server. before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
tibi Posted October 24, 2009 at 08:56 PM Author Report Share #293232 Posted October 24, 2009 at 08:56 PM Complicado... Estou a ver que sim... Já vi vídeos, já li tutoriais, todos eles mostram-me a funcionalidade do mod_rewrite, todos eles me dão um exemplo do tipo domain.com/page/teste Pelo que percebi significa index.php?page=teste Se alterar no URL teste por outra palavra, muda de página (desde que exista). Mas não encontro nada com links. Que tipo de link devo fazer!? Mas obrigado na mesma. Se alguém tiver alguma ajuda. Link to comment Share on other sites More sharing options...
yoda Posted October 24, 2009 at 09:32 PM Report Share #293240 Posted October 24, 2009 at 09:32 PM Por acaso percebes-te mal. Nos urls normais tens como parâmetros uma chave e um valor associado (?chave=valor), e o que o mod_rewrite supostamente faz é acabar com a chave, ficando apenas o valor. Ou seja : index.php?page=teste para index.php/teste before you post, what have you tried? - http://filipematias.info sense, purpose, direction Link to comment Share on other sites More sharing options...
softklin Posted October 25, 2009 at 10:00 AM Report Share #293274 Posted October 25, 2009 at 10:00 AM Eu acho que o que tu querias fazer seria algo como: RewriteEngine On RewriteRule ^(*.)$/(.*)$ index.php?page=$1〈=$2 Ou seja, se o URL for /mod_rewrite/pagina/pt, ele deve ir para index.php?page=pagina〈=pt. Isto é do que me lembro, no entanto, não testei. Nick antigo: softclean | Tens um projeto? | Wiki P@P Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post. Link to comment Share on other sites More sharing options...
djthyrax Posted October 26, 2009 at 12:01 AM Report Share #293349 Posted October 26, 2009 at 12:01 AM ^lang/(.*)$ index.php?lang=$2 Para um regra destas a URI tinha que começar por lang (sem a / inicial). Experimenta ^/mod_rewrite/lang/(.*)$ index.php?lang=$1 e ^/mod_rewrite/page/(.*)$ index.php?page=$1 PS: softclean, isso não leva o 1º $ 😛 Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
djthyrax Posted October 26, 2009 at 12:05 AM Report Share #293352 Posted October 26, 2009 at 12:05 AM Mas olha lá, tu quando estás em /mod_rewrite/page/wtv, a tua URL base dos links é /mod_rewrite/page/, mas se estiveres em /mod_rewrite/page/wtv, já é /mod_rewrite/page/wtv/. Experimenta meter isto no teu <head>: <base href="http://127.0.0.1/mod_rewrite/" /> E usar no <a> "pages/xpto". 😛 Se isto não funcionar, o problema é da regra do htaccess. Não peças ajuda por PM! A tua dúvida vai ter menos atenção do que se for postada na secção correcta do fórum! Link to comment Share on other sites More sharing options...
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