url yeniden yazma index.php

2 Cevap php

i gibi adresler var

http://mysite.com/index.php?p=resources
http://mysite.com/index.php?p=resources&s=view&id=938

ama URL'ler gibi istiyorum

http://mysite.com/resources
http://mysite.com/resources/view/938

yerine yeniden yazma kuralları yüzlerce yapma ben sadece birini olması mümkün olurdu acaba? Ive kafası bu "uri alma ve parçaya bölme" ile mümkündür ve sonra sadece index.php için bir yeniden yazma kuralı eklemek

ama nasıl? Birisi bir örnek vermek ya da bir öğretici bağlantı olabilir

2 Cevap

. Htaccess bu kullanmak olur:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule .* index.php [L]

Bu aslında olursa olsun talep ne index.php çağırır. Sonra PHP kodu içinde size URL almak ve buna göre ayrıştırmak için $ _SERVER ['REQUEST_URI'] bakabilirsiniz.

RewriteCond hatları dosyalara doğrudan çağrı dışlamak için vardır. Benim durumumda js / css / resim dosyaları için istekleri gibi şeyler performans nedenleriyle index.php geçmek istemiyorum.

Create a .htaccess file. Not somefilename.htaccess, it is simply named .htaccess.
Note: Your index.php and .htaccess file should be in the same directory.

Şimdi. Htaccess dosyası üzerinde bu deneyin

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([A-Za-z0-9\-]+)$ index.php?p=resources
RewriteRule ^([A-Za-z0-9\-]+)/([A-Za-z0-9\-]+)/([0-9]+)$ index.php?p=resources&s=view&id=938
</IfModule>

url rewrite hakkında daha fazla görmek here