框架URL重写

时间:2014-03-12 18:13:53

标签: php phalcon

当我加载http://localhost/test时,我会被重定向到http://localhost/public/?_url=/test

这是我的Apache配置。我还测试了以确保加载了rewrite_module。

DocumentRoot "/var/www/myapp/"

<Directory "/var/www/myapp/">
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

我使用Phalcon Dev Tools phalcon project myapp创建了该项目。以下是它自动创建的两个.htaccess文件。

cat /var/www/myapp/.htaccess 
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</IfModule>

cat /var/www/myapp/public/.htaccess 
AddDefaultCharset UTF-8

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

使用Phalcon 1.2.6,Apache / 2.2.24

1 个答案:

答案 0 :(得分:0)

首先你的apache配置应该是

DocumentRoot "/var/www/myapp/public/"

<Directory "/var/www/myapp/public/">
    Options -Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

其次,您的公共目录中应该有一个.htaccess文件,如下所示: -

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

我希望这可以解决这个问题。