Hoe kan ek dwing 'www' subdomein w / Apache2 + Rails + Phusion Passenger?
-
19-09-2019 - |
Vra
My kliënte wil 301 aansture gebruik te dwing 'www' subdomein op hul webwerwe. So 'example.com/something' besluit om 'www.example.com/somthing' ens.
Wat ek probeer doen is om hierdie eenvoudig toe te voeg tot my vhost lêer:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName example.com
ServerAlias www.*
DocumentRoot /data/apps/example.com/current/public
RailsBaseURI /
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,R=301]
</VirtualHost>
Ek het ook seker gemaak dat mod herskryf is in staat gestel via:
sudo a2enmod rewrite
sudo /etc/init.d/apache2 force-reload
Die uitkoms van my huidige pogings blyk basies om suksesvol te wees. Apache weer begin en alles werk soos verwag, behalwe die herskryf gebeur nie. So beide 'www.example.com' en 'example.com' los. Die leser kry nie herlei word na 'www.example.com' wanneer dit moet. Enige idees? Ek het probeer om te herlaai die opset en apache 'n paar keer herlaai, maar ek kan nie lyk om die herskryf reëls werk te kry. Is ek die opstel van hulle in die verkeerde plek deur die plasing van hulle hier in die vhost in plaas van 'n htaccess lêer?
Enige raad hier sou nuttig wees. Ek is heeltemal oorbluf.
Oplossing
Sit hierdie hieronder jou hoof VirtualHost inskrywing:
<VirtualHost *:80>
ServerName example.com
RedirectMatch permanent ^/(.*) http://www.example.com/$1
</VirtualHost>
Jy belangrikste VirtualHost moet 'n ServerName www.example.com inskrywing en geen aliasse of aansture het. Ook, is mod_rewrite nie nodig vir hierdie aanstuur.