【发布时间】:2017-07-09 22:32:41
【问题描述】:
我必须解决这个简单的情况。我有一堆三级域,例如:oldthirdlevel.example.com,我想在 www.example.com 的主域上重定向。我已经尝试在文件.htaccess 上进行简单的 301 重定向,但没有任何成功。我想将各种路径重定向到主域的主页,例如:
oldthirdlevel.example.com/whatever --> www.example.com
oldthirdlevel.example.com/otherthings --> www.example.com
这是我的文件:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^oldthirdlevel.example.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
但我收到 500 内部服务器错误。
【问题讨论】:
-
在您的示例中,您没有提到将旧路径添加到主域 url .: 仅 www.example.com。第二:你错过了重写规则中的 www (不应该导致 500 错误,但仍然
-
如果是关于“一堆”。是否可以说:当域不等于 www.example.com 时:
RewriteCond %{HTTP_HOST} !^www\.domeinnaam\.tld$RewriteRule ^.*$ http://www.domeinnaam.tld/$0 [R=301,L] -
@IvoP 也许我忘记了一件重要的事情。所有这些第三级域都有单独的托管。我现在有点困惑,我必须更改三级域或主域服务器上的 .htaccess 吗?主域使用专用服务器,三级域有单独的托管服务提供商。
-
您的浏览器将尝试访问 oldthirdlevel.example.com。然后在旧主机上寻找它不会更好。在那里,您需要一个带有 rewriterule 的 .htaccess 文件来将访问的浏览器重定向到新位置(在 www.hosting 上)
-
考虑在一个托管环境中拥有所有这些子域。您甚至可以使用与 www 相同的 docroot。您需要在 vhost 文件中告诉 Apache。您需要更改子域的 dns 设置
标签: php apache .htaccess redirect mod-rewrite