我有一些网站可以从一些 URL 重写中受益。我知道需要一个地图文件,但由于数据是动态的,有没有办法从 SQL 数据库而不是静态文件调用?
通过 IIS7 使用 ISAPI 重写
例如不友好 - www.domain.com/products.asp?prodID=1 友好 - www.domain.com/products/Apples
任何示例或指针都会受到赞赏。提前致谢。C :-)
我有一些网站可以从一些 URL 重写中受益。我知道需要一个地图文件,但由于数据是动态的,有没有办法从 SQL 数据库而不是静态文件调用?
通过 IIS7 使用 ISAPI 重写
例如不友好 - www.domain.com/products.asp?prodID=1 友好 - www.domain.com/products/Apples
任何示例或指针都会受到赞赏。提前致谢。C :-)
一种可能的解决方案是使用自定义 404 处理程序来执行此操作......当用户点击 /products/apples 时,404 处理程序将其拾取,进行数据库查找并将其匹配回 prodID=1 并显示正确的内容。
它不是特别优雅,但它可以工作(我过去曾使用过它,只要你记得诸如返回正确的内容的 HTTP 响应头与真正的 404 之类的东西,你应该没问题)
大多数人最终会使用 ISAPI_Rewrite 之类的东西
创建一个新的 .asp 页面,该页面使用产品的 url 名称检索产品。新页面应该类似于您现有的 products.asp 页面,但不是使用 id 获取产品,而是使用唯一 url 名称获取产品。
RewriteRule ^products/(.*)$ /productfromurlname.asp?urlname=$1 [NC,L]
这边走:
/products/apples --> /productfromurlname.asp?urlname=apples
/products/oranges --> /productfromurlname.asp?urlname=oranges