我有一个 Zend Framework 应用程序,.htaccess
在根目录中有一个文件,将所有流量定向到所在的/public
目录index.php
。
这是的内容.htaccess
:
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/(upload|img|js|css|less)/.*$
RewriteCond %{DOCUMENT_ROOT}/public/upload%{REQUEST_URI} -f
RewriteRule ^(.+\.(jpg|png|mp3))$ /public/upload%{REQUEST_URI} [NC,L]
;RewriteCond %{REQUEST_URI} !^/public/.*$
;RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
如您所见,有两条注释掉的行。
该部分据称将流量定向到/public
,并且在我的本地服务器和共享主机上运行,但在我的客户端服务器上似乎惨遭失败。
因此,将这两行注释掉后,当我在浏览器中键入站点地址时,我会得到一个目录列表。当我附加/public
到地址时,正如预期的那样,我被带到了/public/index.php
,但由于请求没有正确重定向,所以也不是 JS 和 CSS 文件。
当我取消注释这些行时,我收到 500 内部服务器错误(index.php
根本没有达到)。
其他重写工作正常(至少据我所知)。
任何想法为什么会发生这种情况以及如何纠正这种情况?
提前致谢。