Edu1234 0 Denunciar post Postado Junho 3, 2015 Oi pessoal, quero redirecionar atraves do htaccess todas as páginas que estiverem dentro da pasta produtos/ para produtos/index.phpexemplo, tenho um link meusite.com.br/produtos/produto1.php dai através do htaccess eu redireciono ele para index.phpdai preciso pegar a parte da url que diz produto1 para saber qual produto vou falar nesta página.e depois mudar a url denovo para meusite.com.br/produtos/produto1.php ao invés de meusite.com.br/produtos/index.phpComo devo fazer isso? alguém pode me ajudar, não entendo nada de expressões regulares.Obrigado a todos. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 você fez uma confusãozinha ai.. em vez de fazer 2 redirects na verdade você fará uma sobrescrita para o server, mas o client continua vendo a url original, entendeu ? RewriteCond %{REQUEST_URI} !^/produtos\/index\.php$ # evitar loop infinito RewriteRule ^produtos\/([a-z0-9]+)\.php$ produtos/index.php?page=$1 [NC,L]ai você pega o "produto" pelo $_GET['page'] Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 3, 2015 obrigado amigo, eu entendi + ou -, copiei o seu código e colei no htaccess e da erro no site Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@meusite.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. Apache/2.2.29 (Unix) mod_ssl/2.2.29 OpenSSL/1.0.1e-fips mod_bwlimited/1.4 Server at Port 80 oque pode ser isso? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 É um erro 500, provavelmente tem algo errado na regra que eu criei, ou erro de sintaxe no teu arquivo .htaccess Como ele está ? Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 3, 2015 tem isso nele <ifModule mod_gzip.c> mod_gzip_on Yes mod_gzip_dechunk Yes mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ mod_gzip_item_include handler ^cgi-script$ mod_gzip_item_include mime ^text/.* mod_gzip_item_include mime ^application/x-javascript.* mod_gzip_item_exclude mime ^image/.* mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* </ifModule> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 Deixa assim então: RewriteEngine On RewriteCond %{REQUEST_URI} !^/produtos\/index\.php$ RewriteRule ^produtos\/([a-z0-9]+)\.php$ produtos/index.php?page=$1 [NC,L] Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 3, 2015 agora ele não da aquele erro, mas não arruma a url <ifModule mod_rewrite.c> RewriteEngine OnRewriteCond %{REQUEST_URI} !^/produtos\/index\.php$RewriteRule ^produtos\/([a-z0-9]+)\.php$ produtos/index.php?page=$1 [NC,L] </ifModule> testei com e sem o <ifModule mod_rewrite.c> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 ? como assim "arruma" ? Ele não vai mudar a URL.. ele vai reescrever para o server, e não fazer redirect. Você vai acessar: /produtos/banana.php e o arquivo que realmente irá responder será o produtos/index.php Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 3, 2015 certo, mas eu quero que a url fique como /produtos/banana.php exemplo. no meu site tenho links assim /produtos/banana.php /produtos/laranja.php dai quando entro neles a url que vai mostrar o produto será a /produtos/index.php só que a url deve ser exibida como /produtos/banana.php não sei se estou explicando corretamente. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 3, 2015 Exato, é isso que irá acontecer. Irá ficar /produtos/banana.php e o arquivo que será chamado será o /produtos/index.php E você terá o "banana", dentro da variavel $_GET['page']. Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 10, 2015 Oi Bruno, estive fora alguns dias e não consegui responder. esta funcionando, mas ele esta pegando o id com oque vem antes do .php, acho q não falei antes, eu pego a página pelo id e não pelo nome, então a página eu abro assim, meusite.com.br/produtos/banana.php?id=5 ele ta pegando como se o id fosse banana e não o 5, então eu preciso pegar o id 5 e depois esconder para que fique meusite.com.br/produtos/banana.php fico no aguardo de sua ajuda, muito obrigado mesmo amigo. Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 10, 2015 Ai não é possível amigo.. não dá para esconder o ID. Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 10, 2015 consegui fazer e te agradeço muito por isso, dai tenho uma página que envia um formulario dentro da pasta /produtos/envia.php só que quando é disparada ela pega e chama a página index.php tbm, dai não envia o formulário, tem como retirar uma página daquela regra? Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Junho 10, 2015 O produtos/index.php já está sendo excluido por essa regra: RewriteCond %{REQUEST_URI} !^/produtos\/index\.php$O seu problema com o formulário deve ser por outro motivo. Crie um novo tópico, com o código de exemplo para reproduzirmos e explique o que acontece. Compartilhar este post Link para o post Compartilhar em outros sites
Edu1234 0 Denunciar post Postado Junho 11, 2015 Obrigado Bruno, consegui fazer com a sua ajuda. Compartilhar este post Link para o post Compartilhar em outros sites