【问题标题】:URL rewriting with 3 variables使用 3 个变量重写 URL
【发布时间】:2011-04-19 02:50:17
【问题描述】:

我想对我的网页进行 URL 重写。同一页面上可能有 2 种链接,如下所示:

分页: http://www.xxxxx.com/dictionnaire.php?page=4 我想看起来像这样: http://www.xxxxx.com/dictionnaire/p4

单词: http://www.xxxxx.com/dictionnaire.php?idW=675&word=Resto-basket 我想看起来像这样: http://www.xxxxx.com/dictionnaire/675/Resto-basket

在 .htaccess 中,我有以下内容:

RewriteRule    ^dictionnaire/p([0-9]+)?$    dictionaire.php?page=$1    [NC,L]    
RewriteRule    ^dictionnaire/([0-9]+)/([a-z])?$    dictionaire.php?idW=$1&word=$2   [NC,L]

问题:

  1. 这是最好的谷歌友好方式吗? (主要是链接这个词,还是有更好的?)
  2. 可以为一个链接设置 2 条重写规则吗?和上面一样?
  3. 我的代码是否有错误,是这样,请帮忙。
  4. 当我创建此代码时,我的 CS 和图像没有出现。你能帮我修一下吗?

我知道这是一个很长的问题,但我认为这样会更容易。

感谢您的帮助。

【问题讨论】:

    标签: php apache url-rewriting


    【解决方案1】:
    1. 这是最好的谷歌友好方式吗? (主要是链接这个词,还是有更好的?) 好吧,你可以把 page4 放在 Pagination 部分,要么真的不会有太大的影响。对于 Word 页面,为什么要通过 ID 而不是实际单词来查找单词? word=(WORD) 似乎根本没有做任何事情。也许完全删除 ID 并让它按单词搜索,以便它可以是 dictionnaire/word/(WORD)。
    2. 您可以为一个链接设置 2 条重写规则吗?像上面那样? 是的,完全有可能有超过 2 条重写规则(想想很多论坛都这样做)
    3. 我的代码是否有错误,是这样,请帮忙。我没有仔细看,但似乎没有任何错误。
    4. 创建此代码时,我的 CS 和图像没有出现。你能帮我解决它吗?这里的问题是它正在 /dictionnaire/p4/css.file.css 中搜索你的 css 文件。它不像我想的那样在你的根目录中查找。将直接根放入以 / 开头的 CSS 文件。

    【讨论】:

      【解决方案2】:
      1. 这应该是“Google 友好的”。
      2. 是的,重写规则按顺序应用;一旦一个匹配并替换了 URL,就不太可能有任何其他匹配(因为他们将使用前一个替换的 URL)。
      3. 对我来说看起来不错。不过,如果您允许目标 URL 稍有不同(在第二个规则中都使用 page= 而不是 idW=),您可以将其设置为一条规则。
      4. 这是因为浏览器会要求相对于未重写 URL 的资源(它当然不知道幕后发生了什么)。您必须为图片和 CSS 使用绝对 URL(或者,在 URL 中使用 ../,或为您的资源添加更多重写规则以使其正常工作)。

      希望对您有所帮助。

      编辑:抱歉,因为您在规则末尾有那个 [L],一旦匹配到一个规则,它将停止尝试匹配任何更多规则。在这种情况下,这不会产生任何实际影响。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-05-08
        • 1970-01-01
        • 2017-10-01
        • 2013-04-22
        • 1970-01-01
        • 2013-08-30
        相关资源
        最近更新 更多