我在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中获取它。