我知道有很多不同的方法来redirect使用Apache,但我想检查这是否是通过虚拟主机做到这一点的正确方法?
<VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example/public <Directory "/var/www/example/public"> Options +FollowSymlinks # Prevent Direct Access to files <FilesMatch "\.(tpl|ini|log)"> Order deny,allow Deny from all </FilesMatch> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA] </Directory> <Directory "/var/www/example/public/admin/view/javascript/ckeditor"> AddType application/x-javascript .js AddType text/css .css AddType text/xml .xml </Directory> ErrorLog /var/log/apache2/example-error.log LogLevel warn CustomLog /var/log/apache2/example-access.log combined </VirtualHost> # Redirect for all non existent subdomains <VirtualHost *:80> ServerAlias *.example.com Redirect 301 / http://www.example.com </VirtualHost>
我会使用文本参数permanent
而不是Redirect
的数字状态301
(或首先使用RedirectPermanent
)。 但那只是化妆品。
否则,你的configurationredirect任何子域!= www
到你的规范url就好了。