URL重写改写

时间:2012-01-05 18:24:19

标签: apache mod-rewrite rewrite

我在重写某个网址时遇到了问题。

我正在进行一些网站移动,Google仍然在其索引中有一些旧网址,它会抓取我想要重定向到新网页。在我对查询字符串和重定向执行查询字符串条带之前,我在想,我想知道你是否可以先在mod_rewrite中完成此操作?我目前在我的.htaccess中有这个,但它不起作用。

RewriteRule ^news.php?action=view&title=(.*) /blog.php?article_keyword=$1 [L]

环境是使用Apache的Linux

2 个答案:

答案 0 :(得分:0)

你不能这样做 - RewriteRule不能直接使用查询字符串 - 仅在RewriteCond的帮助下:

RewriteCond %{QUERY_STRING} ^action=view&title=(.*)
RewriteRule ^news.php$ /blog.php?article_keyword=%1 [R=301,L]

我已添加R=301标记以发出永久重定向,因此Google会知道旧网址已不再使用,而是应使用新网址。如果您不需要此类重定向,请移除它并仅留下L标记。

答案 1 :(得分:0)

在.htaccess中使用此代码:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteCond %{QUERY_STRING} ^action=view&title=(.*)$ [NC]
RewriteRule ^news\.php/?$ /blog.php?article_keyword=%1 [L,R=301,NC]