Mod Yeniden yönlendirme URL'sini sorgu dizesiyle güzel URL'ye yazın
Mod yeniden yazma yardımıyla, sorgu dizesinde çeşitli parametrelere sahip çirkin URL'lerimi başarılı bir şekilde değiştirdim. Ancak, sitem için birçok url var. Geri dönüp çapa etiketlerimin her birinde href özniteliğini düzenlemek yerine, .htaccess dosyasında eski url'yi otomatik olarak yenisine yönlendiren bir yönlendirme işlevi yazmaya çalıştım.
.Htaccess dosyamda aşağıdakilere sahibim:
RewriteEngine On
Redirect teams.php?league=$1&team=$2&year=$3&tab=$4 teams/(.*)/(.*)/(.*)/(.*)
RewriteCond %{REQUEST_URI} !^(css|js|img)/
RewriteRule ^teams/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ teams.php?league=$1&team=$2&year=$3&tab=$4 [L]
Yine de şans yok ... herhangi bir düşünce?
Teşekkürler
Yanıtlar
Sen ile eski URL bir kontrol yapmak gerekir phponun içinde aslında talep ediliyor karşı eşleme tarafından %{THE_REQUEST}, aksi takdirde (kullanıcı team.php gider mesela sonsuza döngü yönlendireceğiz, ekipler, tarayıcı istekleri ekipleri, sunucu yeniden yazar olarak yönlendirme yapan Teams.php, sunucu "Teams.php" yi görür ve ekiplere yönlendirir, tarayıcı ekipleri ister, server yeniden yazımları Teams.php olarak vb.
RewriteEngine On
# redirect when the user actually requests for teams.php
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /teams\.php\?league=([^&]+)&team=([^&]+)&year=([^&]+)&tab=([^\ ]+)
RewriteRule ^teams\.php$ /teams/%1/%2/%3/%4? [R=301,L] # internally rewrite any /teams/ URI RewriteCond %{REQUEST_URI} !^(css|js|img)/ RewriteRule ^teams/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ teams.php?league=$1&team=$2&year=$3&tab=$4 [L]