0

I installed cms at Linux server 10.0.0.1/cms/. I want to redirect every visit to 10.0.0.1/pages to 10.0.0.1/cms/pages, while hide "cms" in the URLs.

Several attempts have been tried but failed.

1> edit /etc/httpd/conf/httpd.conf

DocumentRoot "/var/www/html" -->   DocumentRoot "/var/www/html/cms"

This only works for index page. Hyperlinks in the index "10.0.0.1/cms/pages" will become unavailable in this case, as /cms/pages no longer exist in the DocumentRoot directory "/var/www/html/cms".

2> edit /etc/httpd/conf/httpd.conf

Redirect / /cms/

This will cause infinite loop 10.0.0.1/cms/cms/cms/...

Any idea on this?

Andrew
  • 113

1 Answers1

2

You could do this with mod_rewrite

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /cms/$1 [L]

You can place this in your /etc/httpd/conf/httpd.conf inside the vhost you defined (if you have one) or in your <Directory> otherwise.

This will redirect all requests made to /cms/something to /something while still still fetching it from /cms/something.

Bart De Vos
  • 18,171