Home >Backend Development >PHP Tutorial >Phalcon 使用Apache重写模块失败

Phalcon 使用Apache重写模块失败

WBOY
WBOYOriginal
2016-06-06 20:35:351338browse

初步接触Phalcon,跟着官方文档写代码
文件结构与官方一致

tutorial/
  app/
    controllers/
    models/
    views/
  public/
    css/
    img/
    js/

分别在根目录和public目录添加了.htaccess文件
代码分别如下:

<code>./htaccess

<ifmodule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</ifmodule>
</code>
<code>./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>
</code>

按照官方文档,在浏览器地址栏输入localhost/tutorial/是可以访问到public/index.php文件的
但是我输入localhost/tutorial 会提示

<code>Forbidden

You don't have permission to access /tutorial/ on this server.
</code>

直接输入localhost/tutorial/public/index.php 可以正常访问,也可以显示该有的内容

我的apache版本是2.4.10,配置文件已经修改成了

<code> DocumentRoot "/Users/anneason/www/"                                
<directory>

Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Order deny,allow
Allow from all

</directory>
</code>

修改访问权限之后还是无法访问,并提示上述“没有权限”的信息

遇到这种问题该如何解决,已困扰多时,求帮助,谢谢 :)

回复内容:

初步接触Phalcon,跟着官方文档写代码
文件结构与官方一致

tutorial/
  app/
    controllers/
    models/
    views/
  public/
    css/
    img/
    js/

分别在根目录和public目录添加了.htaccess文件
代码分别如下:

<code>./htaccess

<ifmodule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</ifmodule>
</code>
<code>./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>
</code>

按照官方文档,在浏览器地址栏输入localhost/tutorial/是可以访问到public/index.php文件的
但是我输入localhost/tutorial 会提示

<code>Forbidden

You don't have permission to access /tutorial/ on this server.
</code>

直接输入localhost/tutorial/public/index.php 可以正常访问,也可以显示该有的内容

我的apache版本是2.4.10,配置文件已经修改成了

<code> DocumentRoot "/Users/anneason/www/"                                
<directory>

Options FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Order deny,allow
Allow from all

</directory>
</code>

修改访问权限之后还是无法访问,并提示上述“没有权限”的信息

遇到这种问题该如何解决,已困扰多时,求帮助,谢谢 :)

OSX

自己检测phpinfo(),是否开启mod_rewrite

结果发现没有开启

然后开启重启就可以了

谢谢O(∩_∩)O

我猜你apache是2.0的吧;
如果是Apache 2.0 Handler;比如Mac自带的就是这版本;
那么就到Apache下面找到httpd.conf,然后把以下这段加进去:

<code># use .htaccess files for overriding,
AccessFileName .htaccess
# and never show them
<files>
    Order allow,deny
    Deny from all
</files></code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn