2

Webサーバーには/localhost/ domains / localhost/myCakephpAppがあります。フォルダ構造では何もできませんが、/ localhost /の.htaccessを編集できます。これは、次のように簡略化されています。

RewriteRule (.*) /domains/localhost/$1 [L]

localhost / domains / localhost / myCakephpAppの私のWebサイトには、標準のケーキ.htaccessファイルがあります。

RewriteRule    ^$ app/webroot/    [L]
RewriteRule    (.*) app/webroot/$1 [L]

http:// localhost / whatever /が機能するのは良いことですが、cakephpのすべてのリンク(htmlヘルパーで実行)はhttp:// localhost / domains / localhost / whatever /を指しており、アクセス可能です。

Webサイトをhttp:// localhost / domain / localhost /ではなくhttp:// localhost /でのみ実行するにはどうすればよいですか?

編集:

さて、ルート(http:// localhost /)の.htaccessを変更しました。

RewriteRule ^$ /domains/localhost/app/webroot/ [L]
RewriteRule (.*) /domains/localhost/app/webroot/$1 [L]

http:// localhost / domains / localhost /にあるものを削除しました。これは、Webにはhttp:// localhostからのみアクセスできることを意味しますが、リンクは引き続きhttp:// localhost / domains / localhost / whatever(e404)を指しています。

ケーキのルーティングに「ベースURL」のようなものはありますか?たくさん検索しましたが、何も機能しませんでした。

4

2 に答える 2

0

リダイレクトルートを追加できます。

Router::redirect('/domains/myDomainName.com/*', '/');

ルートを完全に無効にしたい場合は、404ページにリダイレクトできます。そのようなものが機能するはずです:

Router::redirect('/domains/myDomainName.com/*', array('controller'=>'pages', 'action'=>'error-404'), array('status' => '404')); 

さらに、/ View / Pages/error-404.ctpに404ページを追加します。

于 2012-05-02T18:33:17.357 に答える
0

問題は、CakePHPがサーバーからの元のURIを使用してアクションを解決することであり、書き換えられたアクションではありません。

bootstrap.phpでこの「ハック」を試してください。

Configure::write('App.base', '/');
$_SERVER['REQUEST_URI'] = preg_replace('|/domains/localhost|', '', $_SERVER['REQUEST_URI']);
于 2012-10-11T20:55:46.883 に答える