Ir para conteúdo

POWERED BY:

Arquivado

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

Eиcrypted

Sobre url amigável

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

to com um problema, ja está pronto a url amigável, mais ta dando erro no meu apache.

Como ficou seu .htaccess ??

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

 

http://dominio/teste

Se a URL acima for passada, a index.php receberá:

$pag =& $_REQUEST[ 'pag' ];

echo $pag; //irá exibir teste

http://dominio/teste/123

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.

 

;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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">

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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>

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

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