masih arastooyi
masih arastooyi

Reputation: 545

work with htaccess without change url

I have this htaccess

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

it works perfect. I just have one problem, I insert my site urls and images like these

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

its short url not full like

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

so when now I open 127.0.0.1/dl.php/1/ I can get

$_GET['id']

But my links and images want to open from

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

but it must be

http://127.0.0.1/img/h.png

can anyone help me with this? I can't change all urls in my site and make them full url. I have like 50 page and I want this htaccess just for dl.php file

Upvotes: 2

Views: 251

Answers (1)

Rudi Visser
Rudi Visser

Reputation: 21969

It wants to do this because you're using relative paths in your src.

Simply prepend a / to your paths, and it will go to the root of your site (ie. relative to the domain), rather than relative from the current folder (of course, not a real folder, but according to the URL your browser doesn't know any better).

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

Sorry to say but you will need to change each path. There is one alternative, but you'd still have to change every path unless dl.php contains like a header/footer. In this case, you can append a <base href=".." /> tag to the header, which will force relative paths to be resolved relative to the path you give it.

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

Upvotes: 1

Related Questions