.htaccess mod_重写301重定向不工作

.htaccess mod_重写301重定向不工作,.htaccess,mod-rewrite,redirect,rewrite,http-status-code-301,.htaccess,Mod Rewrite,Redirect,Rewrite,Http Status Code 301,我正在尝试设置重写,以重定向此URL: /video-2011.php?video=150 为此: /video/150/此处为自由格式标题文本/ 我在HTACCESS中使用以下行进行重写: RewriteRule ^video/([0-9]+)/(.*)$ video-2011.php?video=$1 [L] 但当我把R=301加入到混合物中,它就破裂了。有什么想法吗 以下是它中断时的完整访问权限: Options +FollowSymLinks RewriteEngine on Rewr

我正在尝试设置重写,以重定向此URL:

/video-2011.php?video=150

为此:

/video/150/此处为自由格式标题文本/

我在HTACCESS中使用以下行进行重写:

RewriteRule ^video/([0-9]+)/(.*)$ video-2011.php?video=$1 [L]
但当我把R=301加入到混合物中,它就破裂了。有什么想法吗

以下是它中断时的完整访问权限:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^video/([0-9]+)/(.*)$ video-2011.php?video=$1 [R=301,L]
非常感谢您的帮助,谢谢

你能试试吗:

RewriteRule ^video/([0-9]+)/ /video-2011.php?video=$1 [R=301,L,NC,QSA]

是的,它会将
/video/150/foo
重定向到
/video.php?video=150
,而不是像你在问题中所说的那样。我想你的.Htaccess可能漏了一行

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule ^video/([0-9]+)/([a-z0-9-_]+)$ video-2011.php?video=$1 [L]
#New
RewriteCond %{REQUEST_URI} !^/video/([0-9]+)/([a-z0-9-_]+)/?$
RewriteCond %{QUERY_STRING} ^video=([0-9]+)&name=([a-z0-9-_]+)/?$
RewriteRule ^video-2011.php$ video/%1/%2/? [R=301,L]
我假设您想重写url,如果它是:

/video/150/freeform-title-text-here/
/video-2011.php?video=150
如果url是:

/video/150/freeform-title-text-here/
/video-2011.php?video=150
致:

因此,这样可以保持URL看起来漂亮整洁

如果我错了,请纠正我

编辑

我已经添加了一个RewriteCond来阻止第二次重写

第一条规则显然会重写:

/video/150/freeform-title-text-here/
这意味着您看不到的查询字符串:

/video-2011.php?video=150

当然,第二条规则也会发生。

你说它违反是什么意思?是不是说找不到、准备重定向等…?很抱歉没有澄清,/video.php?video=150没有重定向到/video/150/我想你的意思是说/video/150没有重定向到/video.php?video=150@Connor史密斯,我也很困惑。我认为@Kevin正在努力保持URL看起来整洁。这就是为什么应该将/video.php?video=150重定向到/video/150/并重写/video/150/到/video.php?video=150谢谢汤姆,这正是我要做的。我的htaccess中有两个重写规则,301似乎没有重定向此URL:/video-2011.php?video=150ammed答案,已在我的服务器上测试并运行。尝试一下并让我知道。感谢继续帮助Tom,不幸的是,这导致了无限重定向情况——“Firefox检测到服务器正在以一种永远不会完成的方式重定向对此地址的请求。”奇怪的是,我在本地测试了它,它对我有效。我会再检查一遍。需要一个
重写cond
,经过测试,现在可以正常工作了,请告诉我您的想法。更新的答案。谢谢你的帮助,但这实际上与我想要达到的目标背道而驰。正如Tom上面提到的,我希望将/video-2011.php?video=150重定向到/video/150/