NineCattoRules
NineCattoRules

Reputation: 2428

Htaccess RewriteRule change subdomain url

I'm in this situation

http://example.com/sub-domain/

and I wish to have this

http://example.com/sub/domain/

without loosing in SEO, what's the right RewriteRule?

At the moment this is my .htaccess file in the subdomain DOCUMENT_ROOT

Options -Indexes +FollowSymLinks
RewriteEngine On
RewriteBase /sub-domain/
# exclude any paths that are not codeigniter-app related
RewriteCond %{REQUEST_URI} !^/server-status
RewriteCond %{REQUEST_URI} !^/server-info
RewriteCond %{REQUEST_URI} !^/docs
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
<IfModule mod_php5.c>
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
# the following is for rewritting under FastCGI
<IfModule !mod_php5.c>
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

EDIT

In my root domain I have installed Wordpress and this is the .htaccess

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [QSA,L]
</IfModule>

Upvotes: 0

Views: 216

Answers (1)

anubhava
anubhava

Reputation: 786359

Leave /sub-domain/.htaccess as is. And have this rule in root .htaccess (a level above /sub-domain/):

RewriteEngine On

RewriteCond %{THE_REQUEST} /sub-domain(\S*)\s [NC]
RewriteRule ^ /sub/domain%1? [R=301,L,NE]

RewriteRule ^sub/domain(/.*)?$ sub-domain$1 [L,NC]

Upvotes: 1

Related Questions