使用url重写从旧索引页面重定向

时间:2011-08-09 14:22:01

标签: .htaccess mod-rewrite redirect

我在Google中有一些旧索引页面需要重定向到新位置。示例:Google会显示wwww.domain.com/pages/subpages/page.php中的www.domain.com/pages/page.php

当有人点击Google中的旧页面时,我还需要打开重写的网址。 示例:用户点击wwww.domain.com/pages/subpages/page.php,它会打开他wwww.domain.com/pages/page.php,但地址栏中有www.domain.com/page(没有“pages /”和php扩展名)。

所以我写了这个.htaccess代码

Redirect 301 /pages/subpages/page.php http://www.domain.com/page
RewriteEngine On
RewriteRule ^page/?$ /pages/page.php 

重定向有效,但用户在地址栏中显示完整的网址(http://www.domain.com/pages/page.php),而不是重写的网址(http://www.domain.com/page)。看起来mod_rewrite不能用于重定向或其他东西。

有没有解决方案?

1 个答案:

答案 0 :(得分:1)

此代码适用于我:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

# 301 redirect
RewriteRule ^pages/subpages/page\.php$ http://www.domain.com/page [R=301,L]

# rewrite
RewriteRule ^page/?$ /pages/page.php [L]

请确保您的htaccess文件中没有其他重定向/重写,因为它们可能会执行其他重写/重定向操作。