我正在创建一个静态/动态混合网站。
Router :: connect('/ about',array('controller'=>'pages','action'=>'display','about'));
对于所有静态页面?或者更好的方式?
答案 0 :(得分:1)
如果您不介意在网址末尾添加.html扩展名并重写对服务器的控制权(mod_rewrite),则可以添加重写规则,直接为您的静态内容提供服务并完全绕过Cake。这对您来说可能是最简单的,因为您只需要在webroot /
下的某处创建静态内容例如,您可以为lighttpd添加以下内容(确保已加载mod_rewrite模块):
url.rewrite-once = (
"^/.*\.html$" => "$0"
)
其转换为:将每个请求以.html结尾(例如“/page.html”或“example / page.html”)并将其解压缩。 $ 0是原始请求的关键字。
或者,对于Apache(在您的配置或app / webroot / .htaccess中),请确保您的重写规则以这两个开头,即提供任何现有文件或目录:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
请注意,此规则必须在CakePHP重写规则之前进行,以便将其短路并首先提供页面,否则CakePHP路由将接管!