我已经创建了一个 CakePHP 2 应用程序,现在我正在尝试将它部署到生产 Web 服务器。
我的应用使用默认文件夹结构(app/lib/plugins/vendors),默认 htaccess,默认路由,没什么特别的。
我一直在本地开发,就好像应用程序位于站点的根文件夹中一样(例如http://mycakeapp.localhost/将我带到站点)。但我正在部署到一个不会出现这种情况的站点(共享主机)(例如http://www.somedomain.com/mycakeapp)。
它不起作用(我真的没想到会这样),所以我认为我必须调整一个或多个 htaccess 文件。我尝试按照本文中的建议修改根 .htaccess ,但这只是部分起作用(例如,指向 CSS 的链接不起作用):
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^mycakeapp$ mycakeapp/app/webroot/ [L]
RewriteRule ^mycakeapp/(.*)$ mycakeapp/app/webroot/$1 [L]
</IfModule>
那么我应该对所有的 htaccess 文件做些什么来使这个 CakePHP 站点在子文件夹中工作呢?
更新:
该站点的根目录中有一个 .htaccess 文件,我已将其内容粘贴在下面。里面有什么东西在搞砸吗?
RewriteEngine on
Options +FollowSymLinks
RewriteCond %{HTTP_HOST} ^somedomain\.com$ [NC]
RewriteRule ^(.*)$ http://www.somedomain.com/$1 [R=301,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^secure/$ https://www.somedomain.com/secure [R=301,L]
RewriteRule ^about\.html$ /contact.php [R=301,L]
RewriteRule ^contact\.html$ /contact.php [R=301,L]
RewriteRule ^download\.html$ /signup.php [R=301,L]
RewriteRule ^index\.html$ /index.php [R=301,L]
RewriteRule ^privacy\.html$ /policies.php [R=301,L]
RewriteRule ^website\.html$ /business-websites.php [R=301,L]
RewriteRule ^return\.html$ /policies.php [R=301,L]