【问题标题】:.htaccess "pretty urls" breaks images src.htaccess “漂亮的 url” 破坏图像 src
【发布时间】:2016-03-01 04:31:46
【问题描述】:

我正在使用 .htaccess 代码通过以下代码将 blog.php 转换为 /blog/:

# --- CUTENEWS[ST]
Options +FollowSymLinks
RewriteEngine On

RewriteRule ^blog(\d+)*$ ./blog.php
RewriteRule ^blog/(\d+)*$ ./blog.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /blogengine/show_news.php?cn_rewrite_url=$1 [L]

# --- CUTENEWS[ED]

这工作正常,除非当我使用 /blog/ 加载网页时,图像会中断。如果我使用 /blog.php 或 /blog 加载网页,则图像加载正常。

我一直在搜索人们在 Stackoverflow 上遇到的所有 .htaccess 问题,这就是我要让事情正常进行的程度。可爱新闻 php 在那里,因为我在我的网站中使用可爱新闻进行博客集成。

感谢任何建议。我对 .htaccess 很陌生

【问题讨论】:

  • 实际上是完全相同的路径。如果我将 blog.php 或 /blog 更改为 /blog/ 图像的路径保持不变,但图像无法加载。

标签: php apache .htaccess mod-rewrite


【解决方案1】:

这是因为您的相对 URI 的基数已更改。原来,当页面为/blog.php时,base为/,浏览器正确填写了/base的相关链接。但是当浏览器转到像/blog/ 这样的页面时,基础突然变为/blog/,它会尝试将其附加到所有相对 URL 的前面,因此它们都不会加载。

您可以将链接设为绝对链接,也可以更改页面标题中的 URI 基础(在 <head> </head> 标记之间):

<base href="/">

【讨论】:

    【解决方案2】:

    您没有考虑尾随斜杠。这个 RewriteRule ^blog(\d+)$* 将不匹配 /blog/ 。试试这个吧:

    RewriteRule ^blog/([0-9]+[^/])*$ /blog.php/$1
    

    编辑: 正如我们在聊天中讨论的那样,您还需要其他东西,这里是:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d    
    RewriteRule ^blog(.*)$ /blog.php?route=$1 [R=301,L]
    

    这将捕获以下 URL:/blog、/blog/、/blog/anythig_goes_here/2343/。添加301 Permanent Redirect header,L表示不处理其他规则。

    在您的 blog.php 中,您可以通过以下方式访问“路由”参数:

    echo $_GET['route'];
    

    编辑:

    经过进一步讨论,通过从重定向 url 的开头删除“/”解决了这个问题,所以现在重写规则行如下所示:

    RewriteRule ^blog(.*)$ blogposts.php?route=$1 [L]
    

    对于图片,需要使用绝对网址,以“/”开头,指向您的网络根目录。

    【讨论】:

    • 从逻辑上讲,您所说的有道理。当我把它放进去时,它说“404 page not found”
    • 等一下。你能准确地输入你想要捕获的 URL 吗?
    • 当然是thinkingofbuying.com/blog/。顺便说一句,如果我添加 RewriteRule ^blog/(\d+[^/])*$ ./blog.php 然后它会加载 404 但图像仍然损坏。
    • 在 blog/ 之后你没有尝试允许数字吗?喜欢 /blog/2343243 吗?
    猜你喜欢
    • 1970-01-01
    • 2023-02-26
    • 2015-10-25
    • 2014-09-24
    • 2019-02-27
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多