【问题标题】:Setting mod rewrite in htaccess / all images lost在 htaccess 中设置 mod 重写/所有图像丢失
【发布时间】:2011-04-16 20:08:02
【问题描述】:

这似乎是一个常见的在线问题,但大多数网站都有旧的答案和/或过时的方法。

我正在使用 .htaccess 重写 SEO 网站的 URL。

基本上,标题链接是这样的:

    <ul id="navigation">
        <li><a href="index/" title="Home">Home</a></li>
        <li><a href="softwares/" title="Softwares">Softwares</a></li>
        <li><a href="about/" title="About">About</a></li>
        <li><a href="contact/" title="Contact">Contact</a></li>
    </ul>

所以完整的网址将是:http://localhost.com/softwares/http://localhost.com/about/ 等等......

重写规则 ^([^/]+)/$ $1.php [NC]

现在,这适用于将 /$/ 路由到文件时,但是,所有图像、href 等都不起作用/显示。 (因为 url 在技术上指向一个子目录)。

我的问题:我们应该写什么或者我们应该做什么来修复那些图像、css、urls等等......

【问题讨论】:

    标签: apache mod-rewrite


    【解决方案1】:

    这里的“问题”是您使用的相对路径在具有多个段的基本路径上的解析方式不同:

     base path  | reference   | resolved path
    ------------+-------------+--------------------
     /          | img/foo.png | /img/foo.png
     /index.php | img/foo.png | /img/foo.png
     /index/    | img/foo.png | /index/img/foo.png
    

    解决此问题的一种简单方法是使用绝对路径:

     base path  | reference    | resolved path
    ------------+--------------+---------------
     /          | /img/foo.png | /img/foo.png
     /index.php | /img/foo.png | /img/foo.png
     /index/    | /img/foo.png | /img/foo.png
    

    您还可以使用 BASE 元素更改基本 URL。但请注意,这将影响 所有 相对 URL。

    【讨论】:

    • 如果我要使用绝对路径,我必须重写所有href,对吗?
    猜你喜欢
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-23
    • 1970-01-01
    相关资源
    最近更新 更多