Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
vejo em alguns sites esse tipo de query string
www.site.com.br/noticias/649
no caso 649 é o número da notícia, queria saber como faz esse tipo de query string
Obrigado
Abraços
Tenho conhecimento em php, vou dar uma estudada sobre isso, obrigado :)
to com um problema, ja está pronto a url amigável, mais ta dando erro no meu apache.
>
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, admin@localhost 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.
alguém sabe o que pode ser?
to com um problema, ja está pronto a url amigável, mais ta dando erro no meu apache.
Como ficou seu .htaccess ??
João, ficou assim:
RewriteEngine On
RewriteRule ^(.+)\/?([0-9]*)\/?$ amigavel/index.php
>
RewriteEngine On
RewriteRule ^(.+)\/?([0-9]*)\/?$ amigavel/index.php
Amigão, o ponto de interrogação deve ser escapado se for usado como literal, ele significa 0 ou 1 ocorrência, por exemplo:
Usando o ? como literal:
.*(\?variavel\=10)
No exemplo acima, a ocorrência de ?variavel=10 será capturada, que é diferente de:
Usando ? como quantificador:
(variavel\=\d)?
No exemplo acima a ocorrência de variavel=10 será capturada se ocorrer no máximo 1 vez.
No seu caso, pelo que eu entendi, você está dizendo que a url deve iniciar com qualquer coisa seguida da ocorrência de 0 ou no máximo 1 / seguida de um grupo contendo números entre 0 e 9, 0 ou N vezes seguido de uma barra que pode ocorrer 0 ou no máximo 1 vez.
Bom, reescrevendo sua regra de reescrita:
RewriteRule ([\w\d_]+)(/{1}(\d+))? amigavel\/index.php?pag=$1&id=$3 [QSA]
Isso fará o seguinte:
Se a URL acima for passada, a index.php receberá:
$pag =& $_REQUEST[ 'pag' ];
echo $pag; //irá exibir teste
Se a URL acima for passada, a index.php receberá:
$pag =& $_REQUEST[ 'pag' ];
$id =& $_REQUEST[ 'id' ];
echo $pag; //irá exibir teste
echo $id; //irá exibir 123
Esse .htaccess irá exibir essa mensagem de erro se não for possível encontrar a pasta na raiz, ou dentro dessa pasta amigavel não existir um arquivo index.php, ou se não houver permissão de leitura para essa pasta ou para o arquivo, então é fundamental que você verifique a existência da pasta, assim como do index.php antes de executar.
;)
colega, pq você utiliza algum framework, eles seguem o padrao MVC e ja utilizam URL amigavel. tem varios que você pode utilizar, cake, codeigniter, prado,zend framework.
Amigos, sei que os poste são antigos mais como estou tendo problema com a url, vo aprovietar esse topico.
minha regra:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}% !-f
RewriteCond %{SCRIPT_FILENAME}% !-d
RewriteBase /testeurl/
RewriteRule ^empresa/?$ empresa.php
só que está dando esse erro:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, webmaster@ 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 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
o que pode ser?
Eиcrypted
Tenho umas perguntas
o seu .htaccess esta na mesma pasta que seu arquivo
quantos parametros estão sendo passados
De um exemplo como você passa sua url mais ou menos assim
www.site.com.br/single.php?slug=aqui-seu-slug
Bem simples...
no seu .htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?pg=$1
ai no seu php você recupera...
<?php
//www.site.com/teste/usuario/1
$url = $_GET['pg'];
var_dump($url);
//return [0] => teste, [1] => usuario, [2] => 1
?>
lembrando que você precisa criar uma variavel para segurar o url fixo pq se não seu css e as img nunca vão bater
tipo $caminho = 'http://meusite.com/';
e sempre antes do url ou da imagem você deve usar
<img scr="<?php echo $caminho; ?>img/teste.jpg">Pessoal, entrei em contato com a hospedagem é eles disseram que está liberado o mod_rewrite
meu .htaccess ta assim
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}% !-f
RewriteCond %{SCRIPT_FILENAME}% !-d
RewriteBase /testeurl/
RewriteRule ^empresa/?$ empresa.php [NC,L]
</ifModule>
mais continua dando erro 500 Internal Server Error, o que pode ser?
>
Pessoal, entrei em contato com a hospedagem é eles disseram que está liberado o mod_rewrite
meu .htaccess ta assim
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}% !-f
RewriteCond %{SCRIPT_FILENAME}% !-d
RewriteBase /testeurl/
RewriteRule ^empresa/?$ empresa.php [NC,L]
</ifModule>
mais continua dando erro 500 Internal Server Error, o que pode ser?
Tente assim
<ifModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME}% !-f
RewriteCond %{SCRIPT_FILENAME}% !-d
RewriteBase /testeurl/
RewriteRule ^empresa/?$ empresa.php [L]
</ifModule>
>
mais continua dando erro 500 Internal Server Error, o que pode ser?
IfModule, com i maiúsculo.
Faça um backup do . htacess e depois deleta da raiz o . htaccess e faça outro de novo e joga na raiz
verifica permissões de pasta e arquivos
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?page=$1
Protegendo suas imagens caso digite www.suapagina.com.br/images
somente o libera para o google
RewriteCond %{HTTP_REFERER} !^http://seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.seusite.com.br/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.google.com.br/.*$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ – [F,NC]
IndexIgnore .wmv .jpg .jpeg .gif .swf .png
Protegendo o .htaccess
<Files ~ "^\.(htaccess|htpasswd)$">
deny from all
</Files>
Protegendo seu diretorio, pois posso ler seu includes
Options -Indexes
Isso é uma URL amigável. Dá uma busca por isso que você vai encontrar.
você vai precisar saber php e ter conhecimento do apache e htaccess pra fazer isso.
Boa sorte