Maak apache outomaties strook af die www.?
Vra
Om verskeie redes, soos koekies, SEO en om dinge eenvoudig te hou, sou ek graag wou maak apache enige versoeke vir http://www.foobar.com/anything om http://foobar.com/ enigiets . Die beste wat ek kon kom met is 'n mod_rewrite gebaseer gedrog, is daar 'n paar maklike eenvoudige manier om te sê dit "Redirect alle versoeke vir domein ABC om XYZ"?
PS: Ek het gevind dat hierdie ietwat verwante vrae , maar dit is vir IIS en doen die teenoorgestelde van wat ek wil hê. Ook dit is nog steeds kompleks.
Oplossing
Dit is so maklik soos:
<VirtualHost 10.0.0.1:80>
ServerName www.example.com
Redirect permanent / http://example.com/
</VirtualHost>
Pas gasheer name en IPs as wat nodig is:)
Ander wenke
eenvoudiger en makliker om te kopieer van werf na werf:
RewriteCond %{HTTP_HOST} ^www\.(.+)$
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Eenvoudig as jy gebruik mod_rewrite, soos ons almal doen;)
Dit is deel van die htaccess van my lewe webwerf:
RewriteEngine on
# Catches www.infinite-labs.net and redirects to the
# same page on infinite-labs.net to normalize things.
RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]
Gebruik 'n htaccess lêer met 'n paar mod_rewrite reëls:
RewriteEngine On
RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]
Ek is nie seker ek het die sintaksis reg met die $1
daar, maar dit is goed gedokumenteer. L stuur 'n plek:. Header om die leser, en QSA beteken Navraagstring Append
Aangesien jy genoem behulp mod_rewrite, sou ek 'n eenvoudige reël in jou htaccess stel - nie monsteragtige vir my lyk:)
RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
RewriteRule ^(.*)$ http://foobar.com/$1 [L,R=301]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Dit behoort die truuk te doen.