Question

I have tried everything from forums but no result. How can I hide directory "example" from all url's in website. For example when user enters:

www.domain.com/example/en/file.php or 
www.domain.com/example/ru/file.php or 
www.domain.com/example/de/file.php

I want him to see in the url only:

www.domain.com/en/file.php or 
www.domain.com/ru/file.php or 
www.domain.com/de/file.php 

but conent have to be taken from

www.domain.com/example/en/file.php or 
www.domain.com/example/ru/file.php or 
www.domain.com/example/de/file.php 

My current htaccess:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
#RewriteCond %{THE_REQUEST} /example/ [NC]
#RewriteRule ^example/(.*)$ /$1 [L,R=301,NC,NE]
#RewriteRule ^((?!example/).*)$ /example/$1 [L,NC]

NOTE: it can be more directories in "example" than en, ru or de.

Was it helpful?

Solution

put this code in your DOCUMENT_ROOT/.htaccess file:

RewriteEngine On

# remove /example/ from URLs
RewriteCond %{THE_REQUEST} /example/ [NC]
RewriteRule ^example/(.*)$ /$1 [L,R=301,NC,NE]

# add www to host name
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# other than /js/ internally prefix /example/ before all URIs
RewriteCond $1 !js [NC]
RewriteRule ^((?!example/)[a-z]{2}/.*)$ /example/$1 [L,NC]

# if a matching .php file is found add .php internally
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^.]+)/?$ $1.php [L]

OTHER TIPS

you can just put this line

Options -Indexes
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top