在CakePHP上使用域作为“前缀”

时间:2010-10-27 10:01:16

标签: .htaccess cakephp rewrite prefix

假设我有一个运行CakePHP的站点,我有前缀“product”。

我有很多网页,例如:

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>

3 个答案:

答案 0 :(得分:1)

我认为您需要创建自己的自定义路由类。检查一下:http://mark-story.com/posts/view/using-custom-route-classes-in-cakephp

答案 1 :(得分: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>

第一行检查网站的名称。第二个检查是否已经没有重写为蓝色衬衫。最后一行执行重写。

答案 2 :(得分:0)

对于外界来说,你需要注册mysite-blue-shirt和所有其他变种。