【问题标题】:how does URL rewrite work in plain englishURL重写如何用简单的英语工作
【发布时间】:2011-04-16 17:34:48
【问题描述】:

我已经阅读了很多关于 URL 重写的内容,但我仍然不明白。

我知道像

这样的 URL
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=19

可以换成更友好的,比如

http://www.example.com/Blog/2006/12/19/

并且服务器代码可以保持不变,因为有一些过滤器可以转换新 URL 并将其发送到旧 URL,但它是否也替换了响应 HTML 中的 URL?

如果服务器代码保持不变,那么在我返回的 HTML 代码中可能有如下链接:

http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=20
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=21
http://www.example.com/Blog/Posts.php?Year=2006&Month=12&Day=22

如果在我的页面中仍然有旧的 URL,这将违背拥有漂亮 URL 的目的。

URL 重写(使用过滤器或其他东西)是否也会替换 HTML 中的此内容?

换句话说...重写规则是否适用于传入的请求以及响应的 HTML 内容?

谢谢!

【问题讨论】:

    标签: url-rewriting seo request response


    【解决方案1】:

    URL 重写器只是获取传入的 URL,如果它匹配某个模式,它会将其转换为服务器可以理解的 URL(假设您的重写规则是正确的)。

    这确实意味着可以通过多种方式访问​​特定资源,但这并不能“打败重点”,因为重点是拥有漂亮的 URL,您仍然可以这样做。

    他们不重写传出的内容,只重写传入的 URL。

    【讨论】:

    • 好的,那么我该如何处理 HTML 中的 href 呢?我该如何替换这些?
    • @userUMB - 你必须改变你的 HTML,或者任何生成它的东西来输出“漂亮”的链接。
    • @userUMB 您可以使用相对路径([href,includes, images, etc] to root)链接而不是绝对避免每次 URL 重写时都必须更改它们。 (例如,href="/pages/services.html")。图像和其他元素也是如此。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2013-06-24
    • 1970-01-01
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多