2011-10-25 10 views
5

L'ho ricercato per circa 2 ore e sebbene la maggior parte degli argomenti siano simili, nessuno ha spiegato come fare ciò che mi piacerebbe fare.Apache riscrive dal sottodominio a www ma conserva tutti i permalink

Sto prendendo un blog con una struttura di blog.domain.com e spostandolo su www.domain.com/blog/. Ho bisogno di mantenere il permalink del post del blog quando ho reindirizzare in modo ...

blog.domain.com/here-is-a-blog-post/

dovrebbe diventare:

www.domain.com/blog/here-is-a-blog-post/ 

Dopo aver provato molte cose, questa è l'ultima cosa che ho provato che termina senza avere alcun effetto. Significato blog.domain.com appena si siede al blog.domain.com/

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^xyz\.domain\.com$ 
RewriteRule ^/(.*) http://domain.com/$1 [redirect,last] 

Ecco la voce dal mio file httpd.conf.

<VirtualHost xxx.xxx.xxx.xxx:80> 
    SSLEngine off 
    SuexecUserGroup apache apache 
    ServerName  www.domain.com 
    ServerAlias  domain.com 
    ServerAlias  blog.domain.com 
    ServerAdmin [email protected] 
    DocumentRoot /home/domain/www/domain.wiredground.com 
    ScriptAlias /cgi-bin/ "/home/domain/www/cgi-bin/" 
    <Directory /home/domain/www/cgi-bin> 
     AllowOverride None 
     Options ExecCGI 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

Qualcuno può aiutare?

Grazie!

risposta

4

utilizzare questo:

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^blog\.domain\.com [NC] 
RewriteRule (.*) http://domain.com/blog/$1 [R=301,L] 
+1

si dovrebbe sfuggire punti in regexp: 'RewriteCond% {}^HTTP_HOST blog \ .domain \ .it $ [NC]' – Seybsen

+0

oops sì buona chiamata grazie –

+0

Grazie per entrambi delle tue risposte. Ho provato l'idea originale e poi ho sostituito la seconda linea con RewriteCond di Seybsen, ma senza fortuna. Riesci a pensare a una ragione per cui quando vado su http://blog.domain.com non viene intrapresa alcuna azione e si trova su http://blog.domain.com? – user1013465