Problems redirecting old domain to new with Apache and htaccess

岁酱吖の 提交于 2019-12-13 03:09:15

问题


My homepage is located at www.nazgulled.net and I bought a new domain which is www.ricardoamaral.net. Both these domains point to the same exact server.

I'm having two problems with the redirection, my current code is this:

RewriteCond %{HTTP_HOST} ^(www\.)?nazgulled\.net [NC]
RewriteRule ^(.*)$ http://www.ricardoamaral.net/$1 [L]

For now I'm just testing but the idea is to replace [L] with [L,R=301] when I'm ready to move the whole thing, just so you know.

Anyway...

1) This is not working, when I try it, I can't access "nazgulled.net", it gives me a "server internal error" and I don't understand why... I don't understand why because if replace "ricardoamaral.net" by "google.com", the redirect works just fine :/

2) I have a few subdomains and I would like to redirect everything in those too. My first choice is to add different rewrite conditions/rules for each of the subdomains but that takes a lot of manual code and if the user types some subdomain that doesn't exist, they don't be redirect it and I also want that.


回答1:


For 1, you can use something like this instead:

<VirtualHost *:80>
  ServerAdmin webmaster@nazgulled.net
  ServerName nazgulled.net
  ServerAlias www.nazgulled.net
  Redirect permanent / http://www.ricardoamaral.net/
</VirtualHost>

I use a similar configuration and it works perfectly, keeping query parameters, paths, etc.

Regarding your own rewrite rule, I want to note that you may lose your query params if you don't include QSA.

To diagnose internal server errors, just have a look at the log file provided by your ErrorLog directive within your vhost, or a global one, depending on your configuration. It should give you the exact reason for the error.




回答2:


I think for your situation creating separate vhosts would be the ideal fit. What I do often is place domains that are being redirected on the same server but in a different folder to keep the www folder clean, for instance. My main site would be here:

/var/www/example.com/public

For all my redirects I would place them like so:

/var/www/redirects/example-2.com/public

Within each public folder of the redirected sites you would add this line to your .htaccess file

RedirectMatch permanent /.* http://example.com/



回答3:


This is best solutions. Create a notepad file and save it as .htaccess if you do not already have an existing one. Update the .htaccess file with the following code and save

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://new-domain.com/$1 [R=301,L]


来源:https://stackoverflow.com/questions/1052975/problems-redirecting-old-domain-to-new-with-apache-and-htaccess

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!