2012-05-01 54 views
2

Web服務器上有/ localhost/domains/localhost/myCakephpApp。我不能做的文件夾結構什麼,但我可以在/本地主機/,現在簡化這個樣子的編輯的.htaccess:.htaccess不能滿足我對CakePHP的需求

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

我在本地主機的網站/域/本地主機/ myCakephpApp有標準蛋糕的.htaccess文件:

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

我很高興,http://localhost/whatever/作品,但在CakePHP中所有鏈接(與HTML助手完成)都指向http://localhost/domains/localhost/whatever/,它是可訪問的。

我該怎麼做才能使網站只在http://localhost/上運行,而不是在http://localhost/domains/localhost/上運行?

編輯:

好,我已經在根改性。htaccess的(HTTP://本地主機/):

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

和刪除的一個在http://localhost/domains/localhost/這意味着該紙幅從只訪問http://localhost,但鏈接仍指向http://localhost/domains/localhost/whatever(e404)

有沒有像蛋糕的路由像「基地網址」?我搜查了很多,但沒有任何工作。如果你想完全禁用,你可以重定向到一個404頁的路線

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

+1

古老的咖啡我的朋友http://stackoverflow.com/a/1334868/330658 –

+0

@ endo.anaconda不,這不是我的問題都。 –

回答

0

問題是CakePHP使用服務器的原始URI來解決操作,而不是重寫的操作!

嘗試在bootstrap.php中這個 「黑客」:

Configure::write('App.base', '/'); 
$_SERVER['REQUEST_URI'] = preg_replace('|/domains/localhost|', '', $_SERVER['REQUEST_URI']); 
+0

我現在只需使用'Configure :: write('App.base',''));',就可以了。謝謝! –

0

你可以添加一個重定向路徑。類似的東西應該工作:

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

加上在/View/Pages/error-404.ctp中添加404頁。

+0

這會產生內部服務器錯誤500 –