1

我正在研究螺旋规则并尝试了各种组合,但没有奏效

我希望解决以下网址,

可以是这个

www.test.com/myownpages/

或者

www.test.com/myownpages
www.test.com/myownpages/?value1=test2&value2=test2

应该解决

$1/test.aspx  [NC]

如果有人在 myownpages 之后给出了一些东西,它不应该工作

www.test.com/myownpages/test (This shouldn't work)

到目前为止,它尝试了以下

RewriteRule ^(.*)(\/\myownpages\/)(.*)(\?)?(.+)?$ $1/test.aspx [NC] 

任何帮助将不胜感激

谢谢

4

2 回答 2

1

我对这些重写规则不是很熟悉,但也许我可以帮助处理正则表达式。当我读到它时,您想匹配以“/myownpages”、“/myownpages/”或“/myownpages/?anything”结尾的任何字符串并捕获之前的部分。我会用

^(.*)/myownpages(/([?].+)?)?$

得到这个。在 RegExr 上查看它的实际应用。如果你需要转义正斜杠,它就变成了。

^(.*)\/myownpages(\/([?].+)?)?$

请注意,这不会保留查询字符串中的值;它将重写www.test.com/myownpages/?value1=test2&value2=test2www.test.com/test.aspx.

于 2011-10-05T06:56:17.670 回答
0

如果您想从 /myownpages --> /myownpages/test.aspx 重写(不重定向),请尝试使用:

RewriteEngine on
RewriteBase /

RewriteRule myownpages/?$ /myownpages/test.aspx [NC,QSA,L]

QSA-flag 自动将查询字符串附加到源路径。

于 2011-10-05T10:53:27.287 回答