Search code examples
.htaccessmod-rewritereplacespecial-characters

Replace special character in htaccess


I changed my forum from kunena to phpbb3. Problem is that my old forum (that is indexed in google) has special characters in urls. I want to keep my urls, so old link works with new forum - but only when special characters are replace with normal letters.

I need to use htaccess to convert characters on the fly.

for example

ą => a
ę => e
ś => s
ć => c

so in words letters will be replaced like this

pościelówka => poscielowka

Can someone help me with that? p.s. sorry for bad English ;)


Solution

  • Try adding this to the htaccess file in your document root:

    RewriteEngine On
    
    RewriteRule ^(.*)ą(.*)$ /$1a$2 [L,R=301]
    RewriteRule ^(.*)ę(.*)$ /$1e$2 [L,R=301]
    RewriteRule ^(.*)ś(.*)$ /$1s$2 [L,R=301]
    RewriteRule ^(.*)ć(.*)$ /$1c$2 [L,R=301]
    RewriteRule ^(.*)ó(.*)$ /$1o$2 [L,R=301]
    

    etc.

    This redirects a URL like:

    http://yourdomain.com/pościelówka
    

    and redirects the browser to:

    http://yourdomain.com/poscielowka
    

    as long as the /poscielowka URI actually exists.