Behseini
Behseini

Reputation: 6320

Rewrite Mod Still Returns Original URL

Using WamServer , I used Generate It! to over write a URL like

The original URL:

http://localhost/CMS/foo.php?id=2&slug=eyeglasses

The rewritten URL:

http://localhost/2/eyeglasses.php

The rule which site gave me is

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.php$ /CMS/foo.php?id=$1&slug=$2 [L]

but this is still returning original URL

http://localhost/CMS/foo.php?id=2&slug=eyeglasses

Can you please let me know what I am doing wrong?

Update

To be more clarify! I have an index.php which contains a link like

echo '<a href="foo.php?id='. $theID .'&slug='. $slug .'" class="list-group-item" data-id="'.$theID.'">'.$theName.'</a>';

now we user landed in foo.php the URL looks like

http://localhost/CMS/foo.php?id=1&slug=eyeglassess

correct? what I would like to do is displaying the

http://localhost/2/eyeglasses.php

instead of original URL

Upvotes: 1

Views: 41

Answers (1)

anubhava
anubhava

Reputation: 784958

You need a redirect rule to redirect old URL to pretty URL. This code should be in /CMS/.htaccess

RewriteEngine On
RewriteBase /CMS/

# redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /CMS/+foo\.php\?id=([^\s&]+)&slug=([^\s&]+) [NC]
RewriteRule ^ %1/%2.php? [R=302,L,NE]

RewriteRule ^([^/]+)/([^/]+)\.php$ foo.php?id=$1&slug=$2 [L,NC,QSA]

However it is better to change your link code to new pretty link scheme.

Upvotes: 1

Related Questions