Использовать домен в качестве «префикса» на CakePHP - PullRequest
2 голосов
/ 27 октября 2010

Допустим, у меня есть сайт, на котором работает CakePHP, и у меня есть префикс "product".

У меня много страниц с URL, например:

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/ в качестве «ярлыка» для продукта с синей рубашкой, и мои URL-адреса станут такими:

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 ]

1 голос
/ 27 октября 2010

Я думаю, вам нужно создать свой собственный класс маршрутизации. Проверьте это: http://mark -story.com / posts / view / using-custom-route-classes-in-cakephp

1 голос
/ 28 ноября 2010

Попробуйте это:

<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 голосов
/ 27 октября 2010

Чтобы внешний мир увидел это, вам нужно зарегистрировать mysite-blue-shirt и все другие варианты.

...