【问题标题】:work with htaccess without change url在不更改 url 的情况下使用 htaccess
【发布时间】:2013-01-11 03:42:07
【问题描述】:

我有这个htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^(.*)$ dl.php?id=/$1 [QSA,L]
</IfModule>

效果很好。我只有一个问题,我插入了我的网站网址和像这样的图片

<img src="img/image.gif">
<a href="do.php">

它的短网址不完整

<a href="mysite.com/img/image.gif">

所以当我现在打开127.0.0.1/dl.php/1/ 时,我可以得到

$_GET['id']

但是我的链接和图片想从那里打开

http://127.0.0.1/dl.php/img/h.png

但必须是

http://127.0.0.1/img/h.png

谁能帮我解决这个问题?我无法更改我网站中的所有网址并使它们成为完整网址。我有 50 页,我希望这个 htaccess 只用于dl.php 文件

【问题讨论】:

    标签: php html .htaccess mod-rewrite


    【解决方案1】:

    它想要这样做是因为您在 src 中使用了相对路径。

    只需在您的路径前添加/,它将转到您网站的根目录(即相对于域),而不是相对于当前文件夹(当然,不是真正的文件夹,而是根据到您的浏览器无法识别的 URL)。

    <img src="/img/image.gif">
    <a href="/do.php">
    

    抱歉,您需要更改每条路径。还有一种选择,但您仍然必须更改每条路径,除非dl.php 包含类似页眉/页脚的内容。在这种情况下,您可以将&lt;base href=".." /&gt; 标记附加到标头,这将强制相对路径相对于您提供的路径进行解析。

    <head>
        ...
        <base href="http://www.mysite.com/" />
    </head>
    

    【讨论】:

    • 所以有没有办法?我必须更改所有网址?
    • @masiharastoyi 抱歉,我只是在更新我的答案,是的:)
    • @masiharastoyi 是的,这是一个非常古老的标签。
    • @masiharastooyi 是的,您正在将 everything 重写为该脚本。把这个贴在RewriteRule上方:RewriteCond %{REQUEST_FILENAME} !-f
    • 不删除RewriteRule:位,第2行应该只是RewriteCond ..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-19
    • 2012-05-22
    • 2016-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多