我在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不能用于重定向或其他东西。
有没有解决方案?
答案 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文件中没有其他重定向/重写,因为它们可能会执行其他重写/重定向操作。