使用.htaccess从另一个文件夹加载文件

时间:2014-02-14 12:09:03

标签: .htaccess mod-rewrite rewrite

我有充分的理由这样做。我觉得这是提供更新的最具成本效益的方式。

这是我目前的网址结构

/ <-- Contains Website
/cart
/cms

Boss希望客户可以选择放弃网站,而是加载购物车代替网站。系统相当陈旧,网站和购物车是完全不同的系统。我们通过这个单一系统托管了很多网站。为2种不同的网站类型配置2个系统将涉及太多的维护。

最少的工作解决方案是将/ cart重写为/。我想出了以下内容。

RewriteEngine On
RewriteCond %{REQUEST_URI} !^/cart/
RewriteCond %{REQUEST_URI} !^/cms/
RewriteRule ^(.*)$ cart/$1

这会返回服务器错误。在最后一行添加/cart/$1确实有效。当系统未安装在根目录中时,我需要它才能工作。 有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

您可以使用此规则:

RewriteEngine On

# Determine the RewriteBase automatically
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]

RewriteCond %{REQUEST_URI} !/(cart|cms)/ [NC]
RewriteRule ^(.*)$ %{ENV:BASE}cart/$1 [L]