我的主页位于www.nazgulled.net,我买了一个新域名www.ricardoamaral.net。这两个域都指向同一个服务器。
我有两个重定向问题,我目前的代码是:
RewriteCond %{HTTP_HOST} ^(www\.)?nazgulled\.net [NC]
RewriteRule ^(.*)$ http://www.ricardoamaral.net/$1 [L]
现在我只是测试,但是当我准备移动整个东西时,我的想法是用[L,R = 301]替换[L],只是你知道。
总之...
1)这不起作用,当我尝试它时,我无法访问“nazgulled.net”,它给我一个“服务器内部错误”,我不明白为什么。 ..我不明白为什么因为如果用“google.com”替换“ricardoamaral.net”,重定向就可以了:/
2)我有一些子域名,我想重新定位其中的所有内容。我的第一选择是为每个子域添加不同的重写条件/规则,但需要大量的手动代码,如果用户键入一些不存在的子域,则不会重定向它,我也想要它。
答案 0 :(得分:3)
我认为根据您的情况创建单独的虚拟主机将是理想的选择。我经常做的是将域重定向到同一服务器但在不同的文件夹中以保持www文件夹清洁。我的主要网站将在这里:
/var/www/example.com/public
对于我的所有重定向,我会像这样放置它们:
/var/www/redirects/example-2.com/public
在重定向网站的每个公用文件夹中,您都会将此行添加到.htaccess文件
RedirectMatch permanent /.* http://example.com/
答案 1 :(得分:2)
对于1,你可以使用这样的东西:
<VirtualHost *:80>
ServerAdmin webmaster@nazgulled.net
ServerName nazgulled.net
ServerAlias www.nazgulled.net
Redirect permanent / http://www.ricardoamaral.net/
</VirtualHost>
我使用类似的配置,它可以很好地工作,保留查询参数,路径等。
关于您自己的重写规则,我想要注意,如果您不包含QSA,可能会丢失您的查询参数。
要诊断内部服务器错误,只需查看您的vhost或全局错误日志文件提供的日志文件,具体取决于您的配置。它应该给出错误的确切原因。
答案 2 :(得分:0)
这是最好的解决方案。如果您还没有现有文件,请创建一个记事本文件并将其另存为.htaccess。 使用以下代码更新.htaccess文件并保存
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://new-domain.com/$1 [R=301,L]