1

私は CakePHP 2 アプリを作成しました。現在、それを実動 Web サーバーにデプロイしようとしています。

私のアプリは、デフォルトのフォルダー構造 (app/lib/plugins/vendors)、デフォルトの htaccess、デフォルトのルーティングを使用していますが、特別なことは何もありません。

私は、アプリがサイトのルート フォルダーにあるかのように、ローカルで開発してきました (たとえば、http://mycakeapp.localhost/でサイトに移動します)。しかし、そうではないサイト (共有ホスティング) にデプロイしています (例: http://www.somedomain.com/mycakeapp )。

これは機能しません (期待していませんでした)。そのため、1 つまたは複数の htaccess ファイルを微調整する必要があると考えました。この投稿で提案されているようにルート .htaccess を変更しようとしましたが、部分的にしか機能しませんでした (たとえば、CSS へのリンクは機能しませんでした)。

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule  ^mycakeapp$  mycakeapp/app/webroot/  [L]
RewriteRule  ^mycakeapp/(.*)$  mycakeapp/app/webroot/$1  [L]
</IfModule>

では、この CakePHP サイトをサブフォルダーで機能させるには、すべての htaccess ファイルをどうすればよいでしょうか?

アップデート:

サイトのルートに .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]
4

1 に答える 1

0

この投稿は少し古いものですが、サブフォルダーへの初めての CakePHP アプリのデプロイの偵察を行っているときに見つけました。次の .htaccess 行は、ルート フォルダー (for) を変更できます。

RewriteBase /subdir/

Apache では、以下のように、httpd.conf または仮想ホスト構成ファイルで追加のアクセス許可またはオプションが必要になる場合があります。

    <Directory />
            Options FollowSymLinks
            AllowOverride All
    </Directory>
    <Directory /var/www/html/site_folder>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
            AddOutputFilterByType DEFLATE text/html text/plain text/xml
    </Directory>
于 2013-10-27T22:16:52.613 に答える