我正在尝试将 XenForo 添加到我的 Phalcon 应用程序中。该项目的结构如下:
www/
phalcon/
app/
controllers/
AccountController.php
views/
account
login.phtml
public/
forums/ <-- XenForo installation
.htaccess
index.php
.htaccess
文件www/phalcon/.htaccess
如下所示:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
文件www/phalcon/public/.htaccess
如下所示:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
我添加了一个视图,www/phalcon/app/views/account/login
其中包含一个发布到 XenForo 登录脚本的表单,该脚本位于http://localhost/phalcon/forums/login
:
<?php echo $this->tag->form('forums/login'); ?>
<p>
<label for="name-email">Name or email:</label>
<?php echo $this->tag->textField('login'); ?>
</p>
<p>
<label for="password">Password</label>
<?php echo $this->tag->passwordField('password'); ?>
</p>
<p>
<?php echo $this->tag->submitButton('Login'); ?>
</p>
<?php echo $this->tag->endForm(); ?>
发布表单引发错误,因为我没有 ForumsController:
PhalconException: ForumsController handler class cannot be loaded
所以我将文件修改为www/phalcon/public/.htaccess
:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(forums)($|/) - [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
这会导致 Phalcon 忽略任何以 . 开头的路由forums
。但是,现在我在发布表单时收到 404:
The requested URL /phalcon/public/forums/login was not found on this server.
我认为 XenForo 会在这一点上接管路由,但显然不是。我需要做些什么才能让 Phalcon 和 XenForo 发挥出色?