1

我有一个锂安装,所有的 .htaccess 工作正常。

我需要在 app/webroot/shop 中安装 OpenCart 作为购物车

我复制了所有文件,并将锂安装根文件夹中的 .htaccess 文件更改为

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteBase /
 RewriteRule    shop/(.*) /app/webroot/shop/$1 [L]
 RewriteRule    ^$ app/webroot/    [L]
 RewriteRule    (.*) app/webroot/$1 [L]
</IfModule>

仍然当我浏览http://domain.com/shop时,它会将我带到http://domain.com/app/webroot/shop/

页面出现错误:

Exception
lithium\action\DispatchException (code 404)
Action `webroot` not found.

请帮我解决这个问题。

4

2 回答 2

1

你可以试试这个:

<IfModule mod_rewrite.c>
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !/app/webroot/shop/? [NC]
RewriteRule  ^shop/(.*) /app/webroot/shop/$1    [L,NC]

RewriteCond %{REQUEST_URI} !/app/webroot/? [NC]
RewriteRule  ^$   /app/webroot/  [L,NC]

RewriteCond %{REQUEST_URI} !/app/webroot/? [NC]
RewriteRule  ^(.*) /app/webroot/$1     [L,NC]
</IfModule>
于 2013-03-29T09:24:06.037 回答
0

问题是您最后的“全部捕获”规则还将商店的所有请求重定向到您不想要的锂。

试试这个

Options +FollowSymlinks -MultiViews
RewriteEngine On

# Rewrite all URLs that start with /shop to /app/webroot/shop
RewriteRule  ^shop/.? /app/webroot/shop%{REQUEST_URI}    [L]

# Rewrite all URLs that don't start with /app/webroot/shop to /app/webroot
RewriteCond %{REQUEST_URI} !^/app/webroot/shop
RewriteRule .? /app/webroot%{REQUEST_URI}     [L]
于 2013-05-12T20:48:39.103 回答