[英]Redirect www to the main domain without www with 301
我有一个主域“ my_domain.com”和几个子域(“ sub1.my_domain.com”,“ sub2.my_domain.com” ...)。 可以将主域名请求为“ my_domain.com”和“ www.my_domain.com”。
我需要将状态为301的所有请求从“ www.domain.com/.../any_url”重定向到“ domain.com”。或者最好将所有请求从“ www.domain.com / ...”重定向到/ any_url”到“ domain.com/.../any_url”。
我已经阅读了一些教程,但不了解执行此操作的标准和最简单的方法。 该网站正在使用Rails,Passenger,Apache和Linux。
这是我在/etc/apache2
root@my_user# ls -al
total 88
drwxr-xr-x 7 root root 4096 Dec 26 19:22 .
drwxr-xr-x 111 root root 4096 Dec 23 03:27 ..
-rw-r--r-- 1 root root 8346 Feb 6 2012 apache2.conf
drwxr-xr-x 2 root root 4096 Dec 26 19:09 conf.d
-rw-r--r-- 1 root root 1322 Feb 6 2012 envvars
-rw-r--r-- 1 root root 0 Dec 26 2013 httpd.conf
-rw-r--r-- 1 root root 31063 Feb 6 2012 magic
drwxr-xr-x 2 root root 12288 Apr 16 2014 mods-available
drwxr-xr-x 2 root root 4096 Dec 30 2013 mods-enabled
-rw-r--r-- 1 root root 750 Feb 6 2012 ports.conf
drwxr-xr-x 2 root root 4096 Sep 22 13:22 sites-available
drwxr-xr-x 2 root root 4096 Sep 22 13:22 sites-enabled
我怎样才能做到这一点? 如何通过mod_rewrite,apache2.conf,/ etc / apache2 / sites-available / my_domain.com或使用其他方式进行处理? 我糊涂了。
更新:
# ls -al /etc/apache2/sites-available
total 32
drwxr-xr-x 2 root root 4096 Sep 22 13:22 .
drwxr-xr-x 7 root root 4096 Dec 26 19:22 ..
-rw-r--r-- 1 root root 2716 May 16 2014 my_site-old
-rw-r--r-- 1 root root 1499 Sep 22 13:22 my_site.my_domain123.com
-rw-r--r-- 1 root root 950 Feb 6 2012 default
-rw-r--r-- 1 root root 7469 Feb 6 2012 default-ssl
-rw-r--r-- 1 root root 1511 Dec 30 2013 puppetmaster
请参考此以加载mod_rewrite。
在定义ServerName www.domain.com
位置使用以下规则
<VirtualHost *:80>
ServerName www.domain.com
# Your existing customizations
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com$1 [R=301,L]
</VirtualHost>
我这样做是这样的:编辑application_controller.rb ,以便可以将“过滤器”应用于所有其他控制器。
root@Ecommerce:/# nano /home/NAMEAPP/app/controllers/application_controller.rb
放入文件中,输入:
class ApplicationController < ActionController::Base
before_filter :redirect_subdomain
def redirect_subdomain
if request.host == 'www.dominio.cl'
redirect_to 'http://dominio.cl' + request.fullpath
end
end
end
您可以尝试使用rack-rewrite
gem
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.