Gerwin
Gerwin

Reputation: 1612

URL rewrite doesn't rewrite page

I tried to use th URL Rewrite module, but it won't rewrite the URL for some reason. If I go to this website: http://localhost/projectredrum/foto.php it will show the correct page, but it doesn't rewrite the URL to what I want.

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
RewriteBase /projectredrum/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^foto\.php$ /Aquaria-Foto/Fotos
</IfModule>
  1. Rewrite Module Tutorial

After looking at the tutorial mentioned above I figured I should try without

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

Because if you use this, it will only rewrite the URL when the URL doesn't match a file name or directory.

However when I did that I got a 404 page not found issue.

Does anyone know why the URL rewrite doesn't work?

Upvotes: 1

Views: 182

Answers (2)

anubhava
anubhava

Reputation: 785246

It is not working because of this condition:

RewriteCond %{REQUEST_FILENAME} !-f

since http://localhost/projectredrum/foto.php is a valid file.

To fix the rule you can use this in /projectredrum/.htaccess:

Options +FollowSymlinks
RewriteEngine on
RewriteBase /projectredrum/

RewriteCond %{THE_REQUEST} /foto\.php[?\s] [NC]
RewriteRule ^ /Aquaria-Foto/Fotos [L,NC,R=302]

R=302 is used to actually redirect the URL in browser.

In DocumentRoot/.htaccess you can use:

RewriteEngine On

RewriteRule ^Aquaria-Foto/Fotos/?$ /projectredrum/foto.php [L,NC]

References:

Upvotes: 1

Tero Korpela
Tero Korpela

Reputation: 46

Apache does local rewrite, because page is in same server it can load it on same request. Add [R,L] to end of RewriteRule line to rediret browser to wanted address.

R means temporally Redirect,
L means last rule.
R=301 is permanent redirect
eg [R=301,L] does permanent redirect and stops checking other rules.

In your case, you probably want to use this kind line:

RewriteRule ^foto\.php$ /Aquaria-Foto/Fotos [R,L]

Here is more info about flags: http://httpd.apache.org/docs/2.4/rewrite/flags.html

Upvotes: 2

Related Questions