1

我在配置.htaccess文件 Zend 框架时遇到问题。在我的本地服务器上运行 apache 和 windows 7 运行正常。

但是当我尝试在实时服务器中运行它时,它显示403 Forbidden

这是我的 .htaccess 配置

Options +FollowSymLinks

RewriteEngine On

RewriteRule ^\.htaccess$ - [F]

RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]

RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]

RewriteCond $1 !^(favicon\.ico|favicon\.png|media|robots\.txt|crossdomain\.xml|css|js)
RewriteRule ^public/.*$ /public/index.php [NC,L]

Options -Indexes
4

2 回答 2

0

我认为如果你简化你的.htaccess规则,你可以让事情正常工作。

由于您的 Zend Frameworkindex.php文件可能位于public_html/public.openhttpd.confhttpd-vhosts.conf取决于您的配置,然后添加/public到您的DocumentRoot.

这样,public将成为 Web 可访问目录,并且它下面的所有内容(包括 ZF 应用程序文件)都将受到保护。

进行更改后,将所有.htaccess文件替换为标准 Zend Framework 重写规则:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

此外,请确保以下所有项目均属实,否则可能无法正常运行:

  • AllowOverride All为您的 public_html 目录设置httpd.conf
  • Chmod 644for.htaccess和所有 PHP 脚本,755适用于大多数目录
  • APPLICATION_PATH在 index.php 中是正确的

希望有帮助。

于 2012-06-07T05:53:49.420 回答
0

几乎总是因为 Apache 用户没有读取这些文件的权限。

于 2012-06-07T02:57:55.883 回答