Jamie000012
Jamie000012

Reputation: 247

htaccess rewrite rule blog links

I have been using htaccess to remove rewrite certain URLs, however I am looking at something a little more complicated at the moment.

Our website blog (WordPress) used to have links like this:

​/blog​/postname/1387

However after redoing the website our links are now currently just

/postname

Would it be possible to redirect any uses from ​/blog​/postname/1387 and get rid of the blog and number at the end via htaccess so it just contains the postname? At the moment I have:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^blog/(.*)/.*$ $1/
</IfModule>

Would love to hear any hints or tips, as this is not actually doing any redirecting, what am I doing wrong?

Upvotes: 0

Views: 1963

Answers (1)

stslavik
stslavik

Reputation: 3028

Let's just do a little cleanup:

<IfModule mod_rewrite.c>
#Turn on the RewriteEngine
RewriteEngine On

#Rewrites are all relative to /
RewriteBase /

#Explicit - If the request is for index.php, do nothing.
RewriteRule ^index\.php$ - [L]

#Conditional – Unless the file or directory specifically exists,
#If the request is for the old style blog URI, redirect to new style and stop.
#Otherwise, redirect to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/(.*)/.*$ $1/ [R=301,L,QSA]
RewriteRule . /index.php [L]
</IfModule>

Upvotes: 1

Related Questions