Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner M.M

Url amigaveis categoria subcategoria

Recommended Posts

Teria como ficar minhas urls assim?

produtos/nome-categoria
ptosutos/nome-categoria/nome-subcategorias

Pois não estou conseguindo fazer, olhem como estou fazendo a regra no .htaccess

 

<IfModule mod_rewrite.c>

RewriteEngine On
    #aqui criamos uma condição para que os arquivos sejam ignorados nas regras abaixo
    RewriteCond %{REQUEST_FILENAME} !-f
  #aqui criamos uma condição para que diretórios sejam ignorados nas regras abaixo
    RewriteCond %{REQUEST_FILENAME} !-d
    #aqui definimos onde começa a base das regras

    #fix rules
    RewriteRule ^pagina-inicial/?$ index.php [NC,L]       
   RewriteRule ^produtos/(.*)/(.*)$ categorias.php?id_categoria=$1&id_subcategoria=$2 [NC,L]
</IfModule>

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso é URL com GET também quero saber com faz para modificar isso aí

 

UP!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

Não sei se é isso que procura mas, fiz algo aqui que atende meus requisitos, talvez seja o mesmo que procura...

Citar

RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ ?page=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ ?page=$1

 

Nesse caso no .htaccess vai  fazer o seguinte:

Tudo que for url que tiver www.meusite?get=minha_pagina vai se tornar www.meusite/minha_pagina

 

No caso um link como estou usando com ajax e aplicando uma função para pegar o que vem da global GET e carregar o arquivo pelo nome do GET recebido.

<a href="?page=nome_do_arquivo">LINK</a> 

Eu posso deixar assim:

<a href="nome_do_arquivo">LINK</a> 

 

Na url vai ficar www.meusite/nome_do_arquivo

Se digitar também isso vai carregar o mesmo se digitar www.meusite?page=nome_do_arquivo

Compartilhar este post


Link para o post
Compartilhar em outros sites
# compressão básica
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js)$
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>
# Proteger os arquivos e diretórios
<FilesMatch "(\.(engine|inc|info|install|module|profile|po|sh|.*sql|theme|tpl(\.php)? |xtmpl)|code-style\.pl|Entries.*|Repository|Root|Tag|Template)$">
Order allow,deny
</FilesMatch>
# Não mostrar listagens de diretório
Options -Indexes
# Regras básicas de reescrita, parar desnecessários bot PERL, bloquear diretórios de subversão
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(.*/)?\.svn/ - [F,L]
ErrorDocument 403 "Acesso proibido"
RewriteCond %{HTTP_USER_AGENT} libwww-perl.*
RewriteRule .* – [F,L]
RewriteRule ^([A-Za-z0-9\-/]+)$ index.php?$1 [NC,L]
</IfModule>

 

Com esse htaccess - é o que eu utilizo - você tem de modo dinamico a url amigavel podendo conter numeros, letras e hifens...

Para chamar a pagina correta, basta aplicar condições de switches e quebrar em arrays as barras da query string que pode ser recuperara por REQUEST_URI
 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por JoaoPauloMateus
      Olá pessoal. 
       
       
       
      Preciso redirecionar o site https://exemplo1.com.br para  uma api http://111.111.111.111:1000
       
      Mas quero que continue aparecendo a url https://exemplo1.com.br depois de redirecionar.
       
       
       
      Tem alguma forma de fazer isso pelo arquivo .htaccess?
       
       
      Desde já agradeço :)
    • Por goio
      Pessoal, estou com dificuldades com essa URL amigável, oque pretendo é o seguinte:
          No array $pages são as páginas permitidas, contato.php e teste.php
          Até ai tudo bem chama as páginas certas, se não existir os arquivos mostra a mensagem que a página não existe.
               http://localhost/contato
          Agora estou com dificuldades de fazer essa verificação pelo banco de dados, se baseando pelo slug da minha tabela
              http://localhost/produtos/tenis-azul
              Apenas exibe a mensagem de que a página não existe.
       
      Como poderia resolver esse problema? se precisar posto a class CRUD

          
      <?php class URL extends CRUD     {         private $selectTable;         private $listResult;         private function setURL()         {             $pages = array ( "fazer-pedido", "contato", "page-teste" );             $categorias = array ( "sapato", "tenis" );             if ( isset ( $_GET['url'] ) ) :                 $url = addslashes ( $_GET['url'] );                 $sepURL = explode ( "/", $url );             endif;             if ( isset( $sepURL[1] ) ) :                 $this->selectTable = $this->selectTable( "COUNT(slug) AS slug", "tabela", "LIMIT 1", array () );                 $count = $this->selectTable->rowCount();                 foreach ( $this->selectTable as $this->listResult ) :                                          if ( $sepURL[1] === $this->listResult['slug'] ) :                         require DIR_FILES."slug".EXT;                     else :                         echo "Essa página não existe, Verificação: ".$sepURL[1];                     endif;                 endforeach;             elseif ( isset( $sepURL[0] ) && in_array ( $sepURL[0], $pages ) ) :                 if ( file_exists ( DIR_FILES.$sepURL[0].EXT ) ) :                     require DIR_FILES.$sepURL[0].EXT;                 else :                     echo "Essa página não existe";                 endif;             elseif ( isset( $sepURL[0] ) && in_array ( $sepURL[0], $categorias ) ) :                 require DIR_FILES."categorias".EXT;             else :                 require DIR_FILES."home".EXT;             endif;         }         public function getURL()         {             return $this->setURL();         }     }  
    • Por marceloamck
      Olá pessoal, sou novo por aqui, aguem pode me ajudar?
      preciso usar a url http://meusite.com.br/sistema/requisicao
      mais internamente precisa ser http://meusite.com.br/controllers/requisicao.php
    • Por Carcleo
      A ideia:
       
      toda e entrada no site, seja com link direto do tipo:
       
      www.site.com.br/pasta1/pasta2/arquivo.php  
      ou normal url amigável
       
      www.site.com.br/categoria/tipo  
      tudo queria que redirecionasse para o index.php da raiz do site.
       
      E que, caso o arquivo ou pasta NÃO existisse, abrisse normalmente a pagina 404.php
       
       
      Tentei de tres formas mas nenhuma dá certo.
       
      Primeira forma
      RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php?page=$1 Segunda forma:
      Options +FollowSymLinks DirectorySlash On RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} \.php$ RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?request=$1 [L] Terceira forma:
      RewriteEngine On ErrorDocument 400 http://www.sortecard.com.br/index.php ErrorDocument 401 http://www.sortecard.com.br/401.php ErrorDocument 403 http://www.sortecard.com.br/403.php ErrorDocument 404 http://www.sortecard.com.br/404.php ErrorDocument 500 http://www.sortecard.com.br/500.php php_value allow_url_fopen on php_value allow_url_include on php_flag mail_filter 0 RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteCond %{HTTPS} off RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteRule ^(.*)$ index.php?page=$1 Problemas:
       
      A) Quando acesso a url diretamente não está redirecionando para o index.
      B) Quando falo que é para redirecionar todos os arquivos ele não me dá os parêmetros. 
    • Por Kelvin Antunes
      Prezados, bom dia!
       
      estou começando a programar agora em PHP e estou com dificuldade na configuração do .htaccess. Estou utilizando a versão 5.6 do php e configurei o .htaccess da seguinte forma, porém quando faço desta forma não consigo acessar as páginas php da raiz exemplo meusite.com.br/pagina.php, mas as páginas que estão em outro diretório eu consigo acessar normalmente, exemplo meusite.com.br/pastaqualquer/pagina.php.
       
      meu script | AddOutputFilterByType DEFLATE text/plain
                          | AddOutputFilterByType DEFLATE text/xml
                          | AddOutputFilterByType DEFLATE application/xhtml+xml
                          | AddOutputFilterByType DEFLATE text/css
                          | AddOutputFilterByType DEFLATE application/xml
                          | AddOutputFilterByType DEFLATE image/svg+xml
                          | AddOutputFilterByType DEFLATE application/rss+xml
                          | AddOutputFilterByType DEFLATE application/atom_xml
                          | AddOutputFilterByType DEFLATE application/x-javascript
                          | AddOutputFilterByType DEFLATE application/javascript
                          | AddOutputFilterByType DEFLATE application/x-httpd-php
                          | AddOutputFilterByType DEFLATE application/x-httpd-fastphp
                          | AddOutputFilterByType DEFLATE application/x-httpd-eruby
                          | AddOutputFilterByType DEFLATE text/html
                          | AddHandler php56-script .php
                          | suPHP_ConfigPath /home/loginFTP/
       
      Poderiam me ajudar?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.