zf创建控制器关于-获取404-为什么?

| 我已经完成以下命令:
zf create controller About
因此,zend工具创建了一个控制器,一个索引动作和一个索引视图。 如果我再去: http://mysite.dev/about/ 我收到404错误。 这是由于在我的AboutController的Index动作上,我什么也没有说“去查看视图”的事实吗? 如果是这样,我应该采取什么措施才能显示视图而不显示404? 在我的.htaccess文件中,位于:*〜/ public_html / mysite.dev / public / *我有:
Options +FollowSymlinks

SetEnv APPLICATION_ENV development

RewriteEngine On

#hotlinking
RewriteCond %{HTTP_REFERER} !^$ [OR]
RewriteCond %{HTTP_REFERER} !^https?://(www\\.)?mysite\\.dev [NC,OR]
RewriteCond %{HTTP_REFERER} !^https?://(www\\.)?mysite\\.something\\.com [NC]
RewriteRule \\.(jpg|jpeg|png|gif)$ - [NC,F,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
在/ etc / apache2 / sites-available中,我有:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mysite.dev

DocumentRoot /home/user/public_html/mysite.dev/public

<Directory /home/user/public_html/mysite.dev/public>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
Allow from all
</Directory>

</VirtualHost>
请注意,在这种配置下,当我键入命令以创建新的zend项目时,我确实获得了正确调用的初始Zend页面。 更新: 我已经更改了.htaccess文件的以下几行,现在它可以正常工作:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
因此,我添加了-s标志和-l标志,并取出了-d标志和包含!-f标志的行的取反。 使用!-d和!-f的意义在于允许访问目录和文件而无需重定向目录和文件。因此,如果它是文件并且存在,则不要重定向。如果是不是文件或目录的其他内容(即控制器调用),则重定向。 我不明白为什么有了这个更改,我就能正常工作了。 :( 为什么? 再次感谢。
已邀请:
RewriteCond %{REQUEST_FILENAME} **!**-d
RewriteCond %{REQUEST_FILENAME} **!**-f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
erorr在RewriteCond中的感叹号中,您说过要说,如果请求文件名不是目录,并且不是常规文件,请转至index.php。 您需要像在新的htaccess文件中所做的那样反转它们:
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

要回复问题请先登录注册