Mark
Mark

Reputation: 159

.htaccess rewrite rules changing dynamic url

I am trying to make the url's better for my website for SEO purposes.

Currently pages are displayed like this:

SITE/[number]-[page name].html

I would like to get the pages to display in a format like below.

example 1.
SITE/[page name].html 

or

example 2.
SITE/[page name]-[number].html 

(I would prefer to leave the page number out if possible, like example 1 but if it must be included I would like it at the end of the url, like the second example above.)

I have the following rule in the .htaccess file.

RewriteRule ^([0-9]+)-(.*)$ site_page.php?page=$1

My biggest problem is that I have tried many ways to get the rewrite to do what I need. I am a complete newbie when it comes to rewrite.

I have changed the rewrite to the following with no joy.

RewriteRule ^(.*)-([0-9]+)$ site_page.php?page=$1
RewriteRule ^(.*)-([0-9])$ site_page.php?page=$1
RewriteRule ^(.*+)-([0-9]+)$ site_page.php?page=$1
RewriteRule ^([.*]+)-([0-9]+)$ site_page.php?page=$1

The above that I have tried was to keep the page id number, I would preferably like to get rid of the numbers altogether.

I have the following Lines in the setting.php file that controls how the website creates the relevant links. And it displays them as I would like. But I get a 404 error because I think the rewrite rule is not displaying what I expected it to display.

// non seo url
$setup_url['normal']['resource']     = "$url_base/site_page.php?page=[number]"; 

// seo url
$setup_url['seo']['resource']    = "$url_base/[number]-[name].html";

I have looked at so many articles on mod rewrite rules, and seem to be getting no where. Any help would be greatly appreciated.

Many thanks. Mark.

Upvotes: 0

Views: 1917

Answers (1)

vmeln
vmeln

Reputation: 1309

Seems that you've forgot the .html extension in rule.

RewriteRule ^(.+)-(\d+)\.html$ site_page.php?$1=$2 [L]

Upvotes: 1

Related Questions