apache 自动完成 url

apache 自动完成 url

请参阅此纽约时报网址:

http://opinionator.blogs.nytimes.com/2011/01/02/war-in-the-cabinet/?hp

如果我们输入

opinionator.blogs.nytimes.com/2011/01/02/war-i

在浏览器中,它会自动将我们重定向到上述文章,即该文件夹中唯一以“war-i”开头的文章。

如何在仅提供静态 html 文件的 apache 站点中执行此操作?也就是说,如果有 apache 模块,则无需添加脚本,这将是最好的。

答案1

您所说的行为实际上是由脚本本身实现的,而不是 Apache。也就是说,请注意 WordPress 官方博客站点上的以下站点,它执行了相同的操作(这只是我在首页上找到的随机博客):

http://bestblog.wordpress.com/2007/06/13/elle-effect/

通过以下任意组合即可访问相同的 URL:

这个“漂亮的 URL”实际上是由mod_rewrite规则强制执行的,它将 URL 重写为脚本可以理解的内容,即:

RewriteRule ^([12][0-9]{3})/([0-9]{2})/([0-9]{2})/(.*)$ /somescript.php?year=$1&month=$2&day=$3&title=$4

等等。脚本收到帖子标题,意识到没有同名的帖子,并在数据库中搜索标题以查看是否可以找到匹配项。如果可以,它会重定向。

我真的希望这能澄清您正在寻找的内容!

安德鲁

答案2

执行此操作的网站是通过其脚本而不是网络服务器来实现的。

如果你必须在静态 HTML 上执行此操作,mod_speling几乎这样做。有志或足够疯狂的人可能在一两天内就能让它工作。

答案3

如果您擅长编写 shell 脚本或 perl,您可能只需几分钟就能得到一个可行的实现。

mod_rewrite +重写映射/ MapType: prg+ 文件名完成脚本

相关内容