2010-10-27 93 views
2

假設我有一個運行CakePHP的站點,並且我有前綴「product」。在CakePHP上使用域作爲「前綴」

我有很多的網頁與網址,如:

http://mysite.com/produt/blue-shirt/details 
http://mysite.com/produt/blue-shirt/order 
http://mysite.com/produt/skate/details 
http://mysite.com/produt/sun-glasses/vendors 

現在我需要使用域像http://mysite-blue-shirt.com/爲「快捷方式」,以藍色衫的產品,我的網址將變爲:

http://mysite-blue-shirt.com/details 
http://mysite-blue-shirt.com/order 

我需要做什麼?

我認爲這是.htaccess在網站的根目錄app目錄之外。

下面是當前語法:

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

回答

1

試試這個:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{HTTP_HOST} ^mysite-blue-shirt\.com 
    RewriteCond %{REQUEST_URI} !^/product/blue-shirt 
    RewriteRule ^(.*)$ app/webroot/product/blue-shirt/$1 [L] 

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

第一線查看該網站的名稱。第二個檢查是否已被重寫爲藍色襯衫。最後一行進行重寫。

+0

不應該是'RewriteRule ^(。*)$ app/webroot/index.php?url = product/blue-shirt/$ 1 [L]'? – 2010-11-28 22:07:27

+0

也可以。看看app/webroot中的.htaccess文件。按照我編輯的答案顯示的方式重寫事情會更好。或者,您可以將QSA標誌添加到您的規則中以附加任何查詢字符串。切記要徹底地測試,因爲角落的情況可以很容易地發展(例如從Cake內部重定向)。 – RabidFire 2010-11-29 03:27:33

0

對於外界看到這一點,你需要註冊mysite的藍色上衣和所有其他的變種。

+1

我不是在說關於域名...我問我**我怎麼做**,使用htaccess或hackin進入CakePHP :) – 2010-11-29 07:00:09