2010-09-13 60 views
0

我有两个关于RewriteRule的问题,但它们都是密切相关的,所以我希望它没问题,我只需要在一个帖子中问他们。RewriteRule重命名URL?

首先,我想剥去任何URL的末尾后index.html的,例如:

http://www.example.com/index.html -> http://www.example.com/ 

第二个是在对所有的浏览器的地址栏,以显示URL http://www.example.com/contact/以下网址:

http://www.example.com/contact/ 
http://www.example.com/contact/index.html 
http://www.example.com/contact/success.html 
http://www.example.com/contact/failure.html 

例如,如果用户被重定向到http://www.example.com/contact/success.html我想显示他们在该网页,但http://www.example.com/contact/作为URL。那可能吗?

回答

1

对于指数:

RewriteRule ^(.*)/index.html /$1/ [R] 

第二:

RewriteRule ^contact/(success|failure)\.html /contact/ [L] 
+0

感谢;第一个工作正常,但不成功/失败 - 它将所有4个URL重定向到'/ contact /',同时仍显示原始URL。我希望与此相反,即显示“contact/success.html”页面,但只在URL中显示“/ contact /”。 – Rezzie 2010-09-13 09:15:31

+0

啊,那时我误解了你。我认为最后一点是不可能的,但如果您将url重命名为/ contact /,网站如何知道它是否必须显示成功或失败页面? – 2010-09-13 09:20:47

+0

我希望能够提供他们刚刚提交的表单是成功还是失败,同时屏蔽了URL,因此如果它们刷新了,他们会再次看到联系表单,以防他们想要重新提交。 – Rezzie 2010-09-13 09:26:45