12

我的目标是这个网址:

component/users/?view=registration

至:

registration.html

位于.htaccess网站的 mysite 文件夹中。

我试过这个:

RewriteBase /mysite
RewriteRule ^component/users/?view=registration$ registration.html$ [R=301,L]

但我不工作...

当我尝试这个时:

RewriteRule ^component/users/_view=registration$ registration.html$ [R=301,L]

它工作得很好。

那么如何用问号解决这个问题。我已经读过它不是 URL 的一部分(它是附加的)。我读过我必须使用类似查询字符串的东西,但我并没有真正理解语法。

也许有人可以写出这个问题的解决方案?会很棒=)

4

2 回答 2

31

您需要使用%{QUERY_STRING}来捕获查询字符串数据:

RewriteCond %{QUERY_STRING} ^view=(.*)$
RewriteRule ^component/users/?$ %1.html? [R=301,L]

component/users如果路径匹配,上述规则/条件将获取查询字符串视图的值并使用它来形成您的重定向。

于 2013-08-31T02:34:45.967 回答
-3
RewriteRule ^component/users/\?view=registration$ registration.html$ [R=301,L]

你需要一个 \ 因为 ? 是正则表达式的一部分。要将其用作字符串,您需要使用 \ 对其进行转义

链接提示: http ://ole.michelsen.dk/tools/regex.html

于 2013-08-31T00:31:59.787 回答