1

I am using mod_write to pull urls out of my database. I have it working at a basic level, but what I am stuck on is creating complex URLs using various slugs pulled from the database as directories in the URL.

Currently the url before using mod_rewrite looks like:

www.domainname.co.uk/company?=1&staff=3

Which takes you to a staff profile within an appropriately styled company page.

But what I want the URL to look like is:

www.domainname.co.uk/COMPANY-NAME/STAFF-NAME

My htaccess currently looks like:

RewriteEngine On
RewriteRule ^c/(.*)$ ./company.php?company=$1

Which results in the URL

www.domainname.co.uk/c/COMPANY-NAME

How do I add the second level directory?

2 Answers 2

1

You can use on additional rule for that:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/([\w-]+)/?$ company.php?company=$1&staff=$2 [L,QSA]

RewriteRule ^c/([\w-]+)/?$ company.php?company=$1 [L,QSA,NC]
Sign up to request clarification or add additional context in comments.

Comments

1
RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9_-\.]+)/([a-zA-Z0-9_-\.]+)(/?)$ /company.php?company=$1&staff=$2 [NC,L]


That should allow urls of the type:
www.domainname.co.uk/COMPANY-NAME/STAFF-NAME

1 Comment

If I wanted to add a rule to go to just www.domainname.co.uk/COMPANY-NAME would it be something like RewriteRule ^([a-zA-Z0-9_-\.]+)(/?)$ /company.php?company=$1 [NC,L] ?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.