I have test all this. Use absolute paths for everything, example:

Some quick stuff:
([a-z]+) - just small letters
([A-Z]+) - just big letters
([0-9]+) - just numbers
([a-zA-Z_-]+) - small and big letters and minus (-)
([a-zA-Z0-9_-]+) - small and big letters, numbers and minus (-)

(.*) - everything - warning!!!! don't ever use - this have to much permissions

Example 1.

www.domain.com/index.php?category=search-engine-optimization

1. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?category=$1 [R=301,L]

results: www.domain.com/search-engine-optimization

2. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)$ index.php?category=$1 [R=301,L]

results: www.domain.com/category/search-engine-optimization

3. solution
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+).html$ index.php?category=$1 [R=301,L]

results: www.domain.com/search-engine-optimization.html

4. solution
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+).html$ index.php?category=$1 [R=301,L]

results: www.domain.com/category/search-engine-optimization.html

5. solution
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/$ index.php?category=$1 [R=301,L]

results: www.domain.com/category/search-engine-optimization/

Example 2.

www.domain.com/index.php?category=internet&subcategory=search-engine-optimization

1. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?category=$1&subcategory=$2 [R=301,L]

results: www.domain.com/internet/search-engine-optimization

2. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+)$ index.php?category=$1&subcategory=$2 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization

3. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+).html$ index.php?category=$1&subcategory=$2 [R=301,L]

results: www.domain.com/internet/search-engine-optimization.html

4. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+).html$ index.php?category=$1&subcategory=$2 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization.html

5. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+)/$ index.php?category=$1&subcategory=$2 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization/

Example 3.

www.domain.com/index.php?category=internet&subcategory=search-engine-optimization&more=articles

1. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?category=$1&subcategory=$2&more=$3 [R=301,L]

results: www.domain.com/internet/search-engine-optimization/articles

2. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+)/more/([a-zA-Z0-9_-]+)$ index.php?category=$1&subcategory=$2&more=$3 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization/more/articles

3. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+).html$ index.php?category=$1&subcategory=$2&more=$3 [R=301,L]

results: www.domain.com/internet/search-engine-optimization/articles.html

4. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+)/more/([a-zA-Z0-9_-]+).html$ index.php?category=$1&subcategory=$2&more=$3 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization/more/articles.html

5. solution:
Code:
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^category/([a-zA-Z0-9_-]+)/subcategory/([a-zA-Z0-9_-]+)/more/([a-zA-Z0-9_-]+)/$ index.php?category=$1&subcategory=$2&more=$3 [R=301,L]

results: www.domain.com/category/internet/subcategory/search-engine-optimization/more/articles/

more resources:
Apache mod rewrite docs
Apache RewriteBase docs
Mod rewrite forum
Absolute and Relative paths
SEW mod rewrite tips and tricks

Published in SEO

No Responses to “.htaccess tips Part 2: How to rewrite advanced url's on apache”

Leave a Reply