2013-09-06 35 views
5

Apache yeniden yazdırmayı kullanırken URL değişikliğini nasıl gizlerim? Bu konuda saatler aradım ve cevabı bulmak için buraya gelmeye karar verdim. Yani herhangi bir yardım/ipucu çok takdir edilecektir! Şu anda kullanıyorumApache yeniden kullanılırken URL değişikliği nasıl gizlenir?

: çalıştığını http://domain.com/Page/abc123 gidin giderken

RewriteRule ^/Page/(.*)$ http://domain.com/page.cfm?pagevar=$1 [NC,L] 

bununla sorundur. AMA, tarayıcı URL'sini http://domain.com/page.cfm?pagevar=abc123,

olarak değiştirir. Aynı eylemi gerçekleştirmesini istiyorum, ancak URL olarak http://domain.com/Page/abc123'u göster.

Lütfen, bu konuyla ilgili tüm bilgiler çok takdir edilecektir! Tekrar teşekkürler. Kuralın hedefinin http://domain.com bölümden kurtulmanız gerekir.

+0

[Size yardımcı olan kullanıcıları nasıl ödüllendireceğinizi, ihtiyacınız olduğunda sorunuzu geliştirmeyi ve bu web sitesini en iyi şekilde kullanmanızla ilgili diğer yararlı ipuçlarını nasıl gözden geçireceğinizi unutmayın.] (Http://stackoverflow.com/about) – Prix

cevap

7

İlk kural oldukça URL biçimine çirkin URL'yi yönlendirir.

İkinci kural, kullanıcı için çirkin URL'yi görmeyecek şekilde yeniden yönlendirecektir.

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

# Redirect /page.cfm?pagevar=abc123 to /Page/abc123 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+page\.cfm\?pagevar=([^&\s]+) [NC] 
RewriteRule^/Page/%1? [R=301,L] 

# Internally forward /Page/abc123 to /page.cfm?pagevar=abc123 
RewriteRule ^Page/(.*)/?$ /page.cfm?pagevar=$1 [QSA,NC,L] 

yukarıdaki kuralları .htaccess dosyalar üzerinde kullanılacak ve page.cfm.htaccess dosyası ile birlikte alan adı klasörün kökünde varsayar.

Örnekleriniz gibi.

+0

+1, son 'RewriteRule' – anubhava

+0

@anubhava'ya' QSA' bayrağı eklemek isteyebilirsiniz, ben bunu düşündüm ama sadece gerçekten yeni URL biçimine taşınan herhangi bir sorgu dizeleri istiyorsa geçerlidir. – Prix

+0

Evet, kabul edildi ancak bu yeniden yazma gereksinimlerini hiç bilmiyorsunuz. Ama OP böyle bir gereklilikten bahsetmedi. – anubhava

0

Ondan var, bu implicity içten yeniden yerine tarayıcısını:

RewriteRule ^/Page/(.*)$ /page.cfm?pagevar=$1 [NC,L] 
İlgili konular