La Reyna
La Reyna

Reputation: 138

Fix the regex code in .htaccess for beautifying this url

my current regex code to beautify a url (www.abc.com/user.php?url="rio") in .htaccess file is

RewriteCond %{REQUEST_URI} user
RewriteRule ^([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)$ user.php?url=$2
RewriteRule ^([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)/$ user.php?url=$2

It works fine and the page url is beautified to :

www.abc.com/user/rio

but there is a problem now, Now even if I change url like in following ways:

www.abc.com/user/user/user/rio
www.abc.com/user///rio
www.abc.com/user/abc/rio

These links work same way, and that is making content duplication. Please help!

Upvotes: 1

Views: 38

Answers (1)

anubhava
anubhava

Reputation: 785481

You may try these rules in your site root .htaccess:

Options -MultiViews
RewriteEngine On

# remove multiple slashes
RewriteCond %{THE_REQUEST} //
RewriteRule ^.*$ /$0 [R=301,L,NE]

# handles /user/something
RewriteRule ^user/([\w-]+)/?$ user.php?url=$1 [L,QSA,NC]

Options -MultiViews is required to turn off content negotiation feature.

Upvotes: 1

Related Questions