Apache URL重写

Apache URL重写,apache,mod-rewrite,rewrite,Apache,Mod Rewrite,Rewrite,我在重写某个URL时遇到问题 我正在做一些网站移动,谷歌的索引中仍然有一些旧的URL,我想重定向到新页面。在我对查询字符串和重定向执行查询字符串条带之前,我想知道您是否可以先在mod_rewrite中完成这项工作?我目前在.htaccess中有这个,但它不起作用 RewriteRule ^news.php?action=view&title=(.*) /blog.php?article_keyword=$1 [L] 环境是Linux和Apache您不能这样做--RewriteRule不

我在重写某个URL时遇到问题

我正在做一些网站移动,谷歌的索引中仍然有一些旧的URL,我想重定向到新页面。在我对查询字符串和重定向执行查询字符串条带之前,我想知道您是否可以先在mod_rewrite中完成这项工作?我目前在.htaccess中有这个,但它不起作用

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

环境是Linux和Apache

您不能这样做--
RewriteRule
不能直接处理查询字符串--只能在
RewriteCond
的帮助下:

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

我添加了
R=301
标志来发出永久重定向,这样谷歌就会知道旧的URL不再被使用,应该使用新的URL。如果您不需要这样的重定向,请移动它并只保留
L
标志。

您不能这样做--
重写规则
不直接处理查询字符串--只能在
重写条件
的帮助下进行:

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

我添加了
R=301
标志来发出永久重定向,这样谷歌就会知道旧的URL不再被使用,应该使用新的URL。如果不需要这样的重定向,请将其移动并只保留
L
标志。

在.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]

在.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]
您不能这样做--
RewriteRule
不直接处理查询字符串--仅在
RewriteCond
的帮助下。您不能这样做--
RewriteRule
不直接处理查询字符串--仅在
RewriteCond
的帮助下。