santa
santa

Reputation: 12512

SEO-friendly URL rewrite in .htaccess

Before you flag this question -- I did search for answers, and found one close to mine that was not answered directly, so...

I am trying to write a simple RewriteRule in my .htaccess file to change ONLY the links that match to an SEO-friendly format.

RewriteEngine On
RewriteRule ^/includes/seo.([a-zA-Z]+).php$ /$1

So if I have a file

/includes/seo.mydocument.php

it will appear in the browser as

/mydocument

Not sure what I'm missing.

Upvotes: 1

Views: 71

Answers (1)

anubhava
anubhava

Reputation: 785058

Leading slash is not matched in .htaccess rules so use this

RewriteRule ^includes/seo\.([a-zA-Z]+)\.php$ /$1 [L,R]

But probably you want this:

RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+includes/seo\.([^.]+)\.php[/\s?] [NC]
RewriteRule ^ /%1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /includes/seo.$1.php [L]

Upvotes: 1

Related Questions