【发布时间】:2013-09-23 06:20:18
【问题描述】:
有 old.test.ru 和 test.ru 域。如何将所有页面从 old.test.ru/* 重定向到 test.ru/*?
我有这些 .htaccess:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# redirect from index.(php|asp|aspx|html|htm), main.(php|asp|aspx|html|htm), home.(php|asp|aspx|html|htm)
RewriteRule ^(.*)index\.(php|asp|aspx|html|htm)$ $1 [R=301,L]
RewriteRule ^(.*)main\.(php|asp|aspx|html|htm)$ $1 [R=301,L]
RewriteRule ^(.*)home\.(php|asp|aspx|html|htm)$ $1 [R=301,L]
# redirect from dev and www
RewriteCond %{HTTP_HOST} ^old\.test\.ru$ [OR]
RewriteCond %{HTTP_HOST} ^www\.test\.ru$
RewriteRule ^(.*)$ http://test\.ru/$1 [R=301,NC]
</IfModule>
我认为最后一行
RewriteRule ^(.*)$ http://test\.ru/$1 [R=301,NC]
应该可以,但是不行。
适用于:
old.test.ru/about.php -> test.ru/about.php
old.test.ru/company.php -> test.ru/company.php
old.test.ru/contact.php -> test.ru/contact.php
但不适用于:
old.test.ru/some/about.php -> test.ru/some/about.php
old.test.ru/some1/company.php -> test.ru/some1/company.php
old.test.ru/some2/contact.php -> test.ru/some2/contact.php
old.test.ru/some2/subsome/contact.php -> test.ru/some2/subsome/contact.php
我应该改变什么?
【问题讨论】:
标签: apache .htaccess mod-rewrite