2010-07-07 84 views
0

我有一個godaddy託管帳戶,並且有一些 路由問題。這些文件在/cakephp下默認/html文件夾下。 完整的URL仍表現出期望的在GoDaddy上Cakephp htaccess mod_rewrite

www[dot]domain[dot]org 

,而不是請幫助。

當前設置

/cakephp/.htaccess

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

/cakephp/app/.htaccess

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

/cakephp/app/webroot/.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase /cakephp/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 
</IfModule> 

回答

3

如果我理解正確的話,你可以訪問你的應用程序:

# http://example.com/cakephp/* # normally served from html/cakephp/ 

...而是你要的網址顯示是這樣的:

# http://example.com/*   # normally served from html/ 

最簡單的辦法是移動cakephp目錄中的所有文件和文件夾上一級,因爲它旨在「開箱即用」,所以目錄結構如下所示:

# html/.htaccess    <- this file would then ... 
# html/app 
# html/app/.htaccess 
# html/app/webroot    <- ... rewrite requests to here 
# html/app/webroot/.htaccess 
# html/cake 

如果您希望保留cakephp包含的目錄,那麼您需要將自己的.htaccess文件添加到html/目錄,告訴Apache您的意圖。結構將是這樣的:

# html/.htaccess    <- your .htaccess file goes here 
# html/cakephp/.htaccess  <- it should look similar to this one 
# html/cakephp/app 
# html/cakephp/app/.htaccess 
# html/cakephp/app/webroot  <- you need to rewrite requests to here 
# html/cakephp/app/webroot/.htaccess 
# html/cakephp/cake 

其中可以從第一CakePHP的.htaccess文件被複制(如上所述)和稍微改變,以產生結果你是後的內容。這樣的事情:

RewriteEngine on 
RewriteRule ^$ cakephp/app/webroot/ [L] # rewrites requests to example.com/ 
RewriteRule (.*) cakephp/app/webroot/$1 [L] # rewrites requests to example.com/* 
+0

嗨Deizel,感謝您的答覆老兄。 我使用了你推薦的第二種方法,現在主頁的網址顯示出來了。 但控制器的頁面仍然顯示完整的URL,我應該如何編輯cakepho中的3.htaccess文件 – jay 2010-07-08 14:46:39

+0

我做了一些測試,看看你的意思。上面的答案只是真正考慮了Apache的一面(.htaccess + mod_rewrite)。我(錯誤地)認爲CakePHP會確定正確的基本路徑(即./而不是'/ cakephp /')。不幸的是,解決這個問題的代碼被隱藏在調度器中,這意味着編輯核心(參見http://kushaura.com/blog/view/name:Installing-CakePHP-in-a-Subdirectory)。因此,我建議使用其中一種受支持的安裝類型(http://book.cakephp.org/view/32/Installation),如建議的第一種。 – deizel 2010-07-14 10:53:23

+0

感謝它幫助了我 – Pratik 2014-12-13 11:45:00