PHP için Gelişmiş Htaccess Rewrite Rule

1 Cevap php

Şu anda ancak birkaç konu vardır PHP işleyebilir şey url arama motoru dostu yeniden yazmak için aşağıdaki kodu var.

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*)/(.*) index.php?$1/$2

Bu domain.com/cat/mens/size/large/ domain.com/index.php?cat/mens/size/large/ olarak yeniden yazar.


Böyle PHP kodu dostça olan bu gibi alt dizinleri değişen miktarlarda kullanılarak böyle bir şey için yeniden yazmak eğer ideal olacaktır:

İdeal Rewrite: domain.com/index.php?cat=mens&size=large

Başka Bir Örnek: domain.com/page/value/subpage/subvalue/something/true/

domain.com/index.php?page=value&subpage=subvalue&something=true: To Rewrite Gerekenler


Ayrıca yeniden yazmak için bir yol var: domain.com/search/?q=blah+blah

Için: domain.com/index.php?search&q=blah+blah

1 Cevap

Bu deneyin:

RewriteRule /page/(.*)/subpage/(.*)/something/(.*) index.php?page=$1&subpage=$2&something=$3

Url değişkenlerin miktarı önceden tanımlanmış değilken sadece php için bir dize olarak geçmek ve onu halledeyim (patlayabilir patlatmak, foreach, bir dizi oluşturmak) daha iyidir.

RewriteRule /search/?q=(.*) index.php?search&q=$1

Aşağıda ne istedi gelince:

RewriteRule /cat/(.*)/size/(.*)/?q=(.*)&abc=(.*) index.php?search&cat=$1&size=$2&q=$3&abc=$4

Temelde, RewriteRule ilk bölümü verilen url, ikinci bölüm komut gider biridir. $ 1, $ 2, $ 3 ve 4 $ gibi ikinci bir kullanabileceğiniz bir değişkene ilk Her (somethingInHere).