我应该如何为基于openlitespeed的服务器配置/重写CakePHP的htaccess?

时间:2018-02-09 08:19:29

标签: php apache .htaccess cakephp litespeed

以下是CakePHP使用的htaccess代码: -

我想重写它们/转换它们以便它们在我的openlitespeed服务器上运行。它们在标准的apache服务器上运行得非常好。

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


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


<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

只需在所需虚拟主机的上下文中添加重写规则即可。

添加虚拟主机的静态上下文 上下文参数:
  - URl = /
  - 位置 =默认路径,例如/usr/local/lsws/Example/html/
  - 无障碍 = Yes
  - 启用重写 = Yes
  - 重写规则 =

RewriteRule    ^(.*)$ app/webroot/    [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php [QSA,L]

您仍然可以将所有原始规则重写。
我只提出一条规则RewriteRule ^(.*)$ app/webroot/ [L],因为我不明白为什么需要其他规则。似乎永远不会匹配webroot/webroot/$1

RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]
RewriteRule    ^$    webroot/    [L]
RewriteRule    (.*) webroot/$1    [L]