2011-10-19 38 views
1

如果有人能帮助我完成这项工作,将不胜感激。为什么我的简单重写代码导致重定向循环?

我试图让domain.com/painting.php?name=hello重定向到domain.com/page/hello,同时保持我的改写:

RewriteCond %{QUERY_STRING} name=([^&]+) 
RewriteRule ^painting\.php$ /page/%1? [R=301,L] #redirects to page 
RewriteRule ^page/([^/\.]+)/?$ painting.php?name=$1 [L] #rewrites painting 

我想只保留了“漂亮网址”。请帮忙。

在这里找到答案:simple 301 redirect with variable not working, why?

+2

因为您将绘画重定向到页面,稍后将页面绘制为绘画? – Dani

+0

如果交换第二行和第三行,会发生什么情况?另外,尝试添加QSA标志到第一行,所以[QSA,L] – JoLoCo

+0

我与@JoLoCo - 我认为你重写它的东西会被重写。交换他们,看看会发生什么。 –

回答

1

我假设你真正想要做的是能接受的URL domain.com/page/hello和重写它(无形)到domain.com/painting.php?name=hello。如果是这样,请尝试使用

RewriteRule ^page/([^/.])+/?$ painting.php?name=$1 [QSA,L] 
+0

:)不幸的是,我得到这个代码500内部错误 – checkenginelight

+0

@checkenginelight糟糕,错字(缺少')')。现在修复 – Phil