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?

1 Answer 1

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.

4
  • Could you please provide more details? I edited httpd.conf to AllowOverride All, and then created a .htaccess file under /var/www/html, containing your scripts. It doesn't work so far. Commented May 16, 2012 at 9:03
  • It still doesn't work, even I place this in both <Directory /> and <Directory /var/www/html> :( Commented May 16, 2012 at 10:09
  • Take a look here: serverfault.com/questions/120488/… Commented May 16, 2012 at 13:52
  • This method should work, although my final solution is just mv * ../, and modify some other config files. Commented May 18, 2012 at 3:07

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.