Margue
Margue

Reputation: 43

Simple rewrite if a word is present in a url

I have about 100 urls which are like these:

http://example.com/en/contact-us
http://example.com/en/about-us

When the someone clicks on any of them, it should the same page but with a parameter that has been appended

for example :

http://example.com/en/contact-us?language=en

How would i go to solve this? I am tring to write something generic that will do the job for the 100 urls i have.

This is what i have got :

RewriteCond %{REQUEST_URI} /en/ [NC]
RewriteRule ^ %{REQUEST_URI}/?language=en

Upvotes: 1

Views: 51

Answers (2)

Rijul Sudhir
Rijul Sudhir

Reputation: 2132

Internal redirection: URL in the browser doesn't change

RewriteEngine on
RewriteRule ^/?([a-z]+)/([^/]+)/? $1/$2?language=$1 [L]

External redirection: URL in the browser changes to new URL

RewriteEngine on
RewriteRule ^/?([a-z]+)/([^/]+)/? $1/$2?language=$1 [R=301,L]

Please try this

Upvotes: 1

Alexander Flenniken
Alexander Flenniken

Reputation: 432

I think you may have forgotten to put a .php file extension at the end?

This will match any two-letter language folder followed by another directory, as long as there is no period.

RewriteRule ^/(\w\w)/([^/]+)/?$ $1/$2.php?language=$1

Be sure to test it with your URLs at regex101.

Upvotes: 0

Related Questions