如何重写网址。在路上?

时间:2016-10-22 21:16:18

标签: asp.net .htaccess mod-rewrite

我有一个网站(asp.net),不知何故谷歌认为它有这样的网址:

http://www.example.com/IL/Venice/Industrial-Warehouse-Space/1226-Bissell-Ave./709265

实际网址应为

http://www.example.com/IL/Venice/Industrial-Warehouse-Space/1226-Bissell-Ave/709265

http://www.example.com/property.aspx?id=709265

如何改写它?

我尝试了几个软件来重写它,即ISAPI_Rewrite3.0,

#RewriteRule /[a-zA-Z][a-zA-Z]/[a-zA-Z0-9\-/,.`')(&_@%\.]+./([0-9]+) /Property.aspx?ID=$1 [L]

然而,它没有用。它返回404.虽然设置了customError,但从未点击它。

它几乎就像在asp.net处理之前一样,它返回404。

1 个答案:

答案 0 :(得分:0)

我认为这是两个问题(和规则)。一种方法是将第一个网址(.)重定向到第二个网址( .)。

RewriteRule ^(../.+?)\.(/[^/]+)$ /$1$2 [R,L]

另一种是从请求URI重写到ASP脚本。

重写规则有几个问题

  • 它以斜杠开头,而目录上下文中没有斜杠
  • 在最后一个斜线前面有一个.,这既不必要也没有帮助
  • 目标是大写的,如果文件系统区分大小写,可能会导致" 404 Not found"
  • 查询参数ID是大写的,这可能是也可能不是问题

如果您只想将跟踪号码作为脚本的ID,而不是真正关心您的网址格式,您可以尝试使用此规则捕获它

RewriteRule ^.+?/([0-9]+)$ /property.aspx?id=$1 [L]