2013-03-29 21 views
1

我有锂电安装,所有.htaccess都能正常工作。锂/ apache商店的重写规则

我需要安装Opencart的在应用程序/ Webroot公司/店购物车

我复制所有文件和也改变了.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. 

请帮我解决这个问题。

+0

当你浏览'HTTP会发生什么:// domain.com /店/'Ø只是通过'http:// domain.com /',它去'HTTP: //domain.com/app/webroot/...'没有任何错误? –

+0

当我浏览到http://domain.com时浏览正确。 –

+0

当我浏览到domain.com/somecontroller时,它也完美无缺。 我只是想在app/webroot/shop中添加一个商店文件夹,所以当我做domain.com/shop时,它应该从商店文件夹加载文件 –

回答

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> 
+0

错误已经改变... 它重定向到http://domain.com/app/webroot/shop/ 异常 锂\动作\ DispatchException(代码404) 动作'webroot'未找到。 –

+0

不幸的是,我看到了同样的错误信息。也许你想用[R,L,NC]标志而不是[L,NC]来尝试看看发生了什么。请确保在进行任何测试之前浏览器的缓存已清除。 –

+0

我会试着让你知道 –

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]