2

私はこのhtaccessを持っています

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

それは完璧に機能します。問題が 1 つあります。サイトの URL と画像を次のように挿入します。

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

その短いURLは完全ではありません

<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

誰でもこれで私を助けることができますか?サイト内のすべての URL を変更して完全な URL にすることはできません。私は50ページほど持っていて、dl.phpファイルのためだけにこのhtaccessが欲しい

4

1 に答える 1

1

で相対パスを使用しているため、これを実行する必要がありますsrc

パスの前にa/を付けるだけで、現在のフォルダ(もちろん、実際のフォルダではありませんが、ブラウザのURLによると)からの相対ではなく、サイトのルート(つまり、ドメインからの相対)に移動します。よくわかりません)。

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

申し訳ありませんが、各パスを変更する必要があります。dl.php代替案が1つありますが、ヘッダー/フッターのように含まれていない限り、すべてのパスを変更する必要があります。この場合、<base href=".." />ヘッダーにタグを追加できます。これにより、指定したパスを基準にして相対パスが強制的に解決されます。

<head>
    ...
    <base href="http://www.mysite.com/" />
</head>
于 2013-01-27T19:33:35.253 に答える