2013-04-26 2 views
0

Я пытаюсь, чтобы все веб-страницы из старого домена переходили на соответствующие веб-страницы в новый домен с той же файловой структурой. Я использую следующий код, но проблема в том, что старая веб-страница идет на веб-страницу индекса, а не на соответствующую веб-страницу. В основном (. *), Который, как мне кажется, отображает остальную часть URL-адреса, не отображается с помощью $ 1 в правиле перезаписи?.htaccess перенаправить несколько доменов на один домен

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com(.*) [NC] 
RewriteRule^http://www.newdomain.com$1 [R=301,L] 

ответ

1

Если вы используете $1, вам нужно захватить что-то в вашем RewriteRule с помощью (). Попробуйте это:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

Это перенаправляет http://olddomain.com/page.php к http://www.newdomain.com/page.php.

Кроме того, в случае, может быть несколько olddomain s, перенаправить URL, который не в newdomain:

Options +FollowSymLinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^(www\.)?newdomain\.com$ [NC] 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

Это перенаправляет http://notnewdomain.com/page.php к http://www.newdomain.com/page.php.

EDIT:

Вот скриншот моего теста на http://htaccess.madewithlove.be: tested at htaccess.madewithlove.be

+0

ближе, но она падает папку. Пример: http://notnewdomain.com/folder/page.php отправляется на http://newdomain.com/page.php, а не http://newdomain.com/folder/page.php –

+0

Он также перенаправляет 'http: // example.com/folder/page.php' на 'http: // www.newdomain.com/folder/page.php'. Это то, что вы имели ввиду? – showdev

+0

он отбрасывает папку/и переходит на http://www.newdomain.com/page.php –