2010-08-21 22 views

cevap

12

Bu ne istediğini yapmalıdır. Ayrıca mevcut dosyalarınızda ne olduğundan emin olmadığım için "bu dosya mevcutsa yönlendirmeyin" ifadesine ekledim. Bunu istemiyorsanız ikinci RewriteCond'u çıkararak kaldırmayı deneyebilirsiniz, ancak muhtemelen bir ölçüde gerekli olduğunu düşünüyorum.

RewriteEngine On 

# Check if the requested path is not a real file or a 
# real directory 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
# If the current request doesn't start with "blog", and 
# it's not a real file or directory based on the above 
# conditions, add "blog" to the front of the request, and 
# mark an environment variable that indicates we'll need 
# to redirect 
RewriteRule !^blog blog%{REQUEST_URI} [E=CHANGED:TRUE] 

# Check if the host doesn't start with "www.", or if we've 
# marked the change variable above, since in either of those 
# cases we need to perform a redirection (We do it this way, 
# since we'll at most send one redirect back to the client, 
# instead of the potential two we might send if we didn't 
# combine the checks) 
RewriteCond %{HTTP_HOST} !^www\. [OR] 
RewriteCond %{ENV:CHANGED} =TRUE 
# Capture the non-"www." part of the host, regardless of 
# whether or not the "www." is there 
RewriteCond %{HTTP_HOST} ^(www\.)?(.*)$ 
# Redirect anything to the corrected URL, using the 
# backreference from the above condition, and the entirety of 
# the requested path (possibly modified by the above RewriteRule) 
RewriteRule ^.*$ http://www.%2/$0 [R=301,L] 
+0

O ince ... Teşekkür çalışıyor. Hey, muhtemelen her satır hakkında kısa bir açıklama yazabilirseniz, daha iyi olurdu. Yine de teşekkürler. –

+1

@Drigit Inrok - Bu iyi bir nokta, şimdi her şeyi açıklayacağına dair yorum ekledim. Yorumlar için –

+0

+1 – WarFox

İlgili konular