我想使用 .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
答案 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