如何从/页面redirect到/ cms /页面并在URL中隐藏“cms”?

我在Linux服务器10.0.0.1/cms/上安装了cms。 我想将每次访问redirect到10.0.0.1/pages到10.0.0.1/cms/pages,同时在URL中隐藏“cms”。

已经尝试了几次尝试,但都失败了。

1>编辑/etc/httpd/conf/httpd.conf

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

这只适用于索引页面。 在这种情况下,索引“10.0.0.1/cms/pages”中的超链接将变为不可用,因为/ cms / pages不再存在于DocumentRoot目录“/ var / www / html / cms”中。

2>编辑/etc/httpd/conf/httpd.conf

 Redirect / /cms/ 

这将导致无限循环10.0.0.1/cms/cms/cms / …

任何想法呢?

你可以用mod_rewrite来做到这一点

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

你可以把它放在/etc/httpd/conf/httpd.conf里面你定义的虚拟主机(如果你有的话)或者在你的<Directory>

这将redirect到/ cms / something的所有请求到/ something,同时仍然从/ cms / something中获取它。