Phalcon继续将index.phtml用于不同的控制器

时间:2012-11-19 12:30:35

标签: phalcon

我是Phalcon的新手,我喜欢这个框架,但我的链接有问题。我使用phalcon版本0.6.1和XAMPP 1.8.1将vhosts设置为xampp / htdocs / test我的phalcon测试。

我一直在关注本教程并遇到了问题。当我使用链接加载其他控制器时,地址栏显示正确的路径,但据我所知,每次都会加载index.phtml。我上传了文件here,以便您自己查看。

如果我使用Tag :: LinkTo()或因为它没有改变,这没关系。

修改

我按照instructions,从/ test和/ test / public目录中删除了.htaccess文件,将其移动到httpd.conf。最后我添加了

  

<Directory "C:/xampp/htdocs/www/test">
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</Directory>

<Directory "C:/xampp/htdocs/www/test/public">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</Directory>
     

并像我这样修改了我的httpd-vhosts.conf

  

ServerAdmin admin@example.host
DocumentRoot "C:/xampp/htdocs/test/public"
DirectoryIndex index.php
ServerName example.host
ServerAlias www.example.host

<Directory "C:/xampp/htdocs/test/public">
    Options All
    AllowOverride All
    Allow from all
</Directory>
     

页面加载但是像/public/css/bootstrap.min.css这样的绝对链接不起作用,当我点击链接时它会给我一个错误404,并说找不到对象。我修改了这样的文件:

  

<Directory "C:/xampp/htdocs/test">
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</Directory>

<Directory "C:/xampp/htdocs/test/public">
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?_url=/$1 [QSA,L]
</Directory>
     

  

ServerAdmin admin@example.host
DocumentRoot "C:/xampp/htdocs/test"
DirectoryIndex index.php
ServerName example.host
ServerAlias www.example.host

<Directory "C:/xampp/htdocs/test">
    Options All
    AllowOverride All
    Allow from all
</Directory>
     

但这让我想到了我的原始问题,当我点击链接时,它会再次加载index.phtml,即使它在URL中显示localhost:8005 / sample。

1 个答案:

答案 0 :(得分:2)

看起来你的Apache配置不允许读取.htaccess文件:

<VirtualHost *:80>

    ServerAdmin admin@localhost
    ServerName phalcon.test

    DocumentRoot /srv/htdocs/sites/test        

    <Directory "/srv/htdocs/sites/test">
        AllowOverride All
        Options All
        Order allow,deny
        Allow from all
    </Directory>

</VirtualHost>

此外,在您的public / index.php的顶部,检查$ _GET [&#39; _url&#39;]是否已将URI传递到您的浏览器