如何删除" detail.html"从使用.htaccess文件或同等文件的以下URL?

时间:2014-09-06 10:13:59

标签: .htaccess url-rewriting

我想使用 .htaccess 文件重写以下网址:

http://www.example.com/haunted_pub/detail.html
http://www.example.com/haunted_pub/west_and_south_west/detail.html
http://www.example.com/haunted_pub/west_and_south_west/wiltshire/detail.html
http://www.example.com/haunted_pub/west_and_south_west/wiltshire/bradford_on_avon/detail.html
http://www.example.com.com/haunted_pub/west_and_south_west/wiltshire/bradford_on_avon/6149/the_cross_guns/detail.html

所以他们改写为:

http://www.example.com/haunted_pub
http://www.example.com/haunted_pub/west_and_south_west
http://www.example.com/haunted_pub/west_and_south_west/wiltshire
http://www.example.com/haunted_pub/west_and_south_west/wiltshire/bradford_on_avon
http://www.example.com/haunted_pub/west_and_south_west/wiltshire/bradford_on_avon/6149/the_cross_guns

我是否可以使用一条规则从任何网址中截断最终的“detail.html”?如果是这样,那么在这种情况下它会是什么?

修改 这是在IIS下运行。

简而言之,如果我请求:http://www.example.com/haunted_pub/west_and_south_west,那么我希望服务器呈现http://www.example.com/haunted_pub/west_and_south_west/detail.html,但地址栏中的保留名称为http://www.example.com/haunted_pub/west_and_south_west

1 个答案:

答案 0 :(得分:2)

您可以将此代码放入htaccess

RewriteEngine On

RewriteCond %{THE_REQUEST} \s/(.+?)/detail\.html\s [NC]
RewriteRule . /%1 [R=301,L]

RewriteCond %{DOCUMENT_ROOT}/$1/detail\.html -f
RewriteRule ^(.+)$ /$1/detail.html [L]

修改

由于您使用的是IIS服务器,因此无法使用htaccess文件(仅适用于Apache服务器) 在您的案例中,您需要web.config文件中的特定重写语法 但我认为它存在某种模拟器,可以在IIS服务器上启用htaccess 或者您也可以使用isapirewrite

之类的内容