Автор Тема: ЧПУ не включается  (Прочитано 2066 раз)

12 Июнь 2014, 23:31:27
  • Пользователь
  • **
  • Сообщений: 71
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Вот столкнулся с тем, что нужно настроить ЧПУ.
Итог таков: включаю, захожу на главную страницу, а к домену добавляется "/ru" что соответственно вызывает 404

Такая же штука с товарами и всем остальным

И смущает предупреждение "На вашем сервере отключен параметр URL rewriting (mod_rewrite) или невозможно проверить конфигурацию вашего сервера. Для использования ЧПУ необходимо активировать этот параметр".  Хостинг - мастерхост, на винде

Подскажите, в каком направлении копать.
13 Июнь 2014, 10:26:38
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 33325
  • Репутация: +26771/-0
    • Просмотр профиля
ru добавляется потому что на сайте несколько языков.
Цитировать
"На вашем сервере отключен параметр URL rewriting (mod_rewrite) или невозможно проверить конфигурацию вашего сервера. Для использования ЧПУ необходимо активировать этот параметр".
Это только предупреждение, что prestashop не смог определить mod_rewrite, а ЧПУ может работать.
13 Июнь 2014, 13:02:19
Ответ #2
  • Пользователь
  • **
  • Сообщений: 71
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо, это я сам сообразил и отключил английский язык в Локализация - Языки :)

Начал разгребать потихоньку.
Поставил IIS и пошёл импортировать правил URL REWRITE.
Подсунул ему htaccess для импорта.

Теперь загвоздка вот в чём: Он ругается на ENV:REWRITEBASE
Как это можно исправить?
13 Июнь 2014, 13:14:11
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 1285
  • Репутация: +13/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Цитировать
в случае работы сайта на Windows-хостинге под управлением web-сервера IIS не работают директивы, размещаемые в файле .htaccess, с IIS, аналогом .htaccess является файл web.config
Конвертация .htaccess в web.config
13 Июнь 2014, 13:19:14
Ответ #4
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86688
  • Репутация: +25428/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Хостинг под Windows не очень подходит для Prestashop.
Вот ссылка, смотрите как настроить сервер IIS для работы с Prestashop.
Friendly URLs & IIS/Windows Server
13 Июнь 2014, 17:09:25
Ответ #5
  • Пользователь
  • **
  • Сообщений: 71
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Извините уж меня тупого.
Но первая ссылка от товарища Тиграна намекает только на поиск гуглом двух слов :)
По второй ссылке я понял только то, что всех устроило приложение Helicon Rewrite 3.0

Пытался проделать как по ссылке http://www.iis.net/learn/extensions/url-rewrite-module/importing-apache-modrewrite-rules   но у меня в IIS в Default Site тупо нет в меню url-rewrite. и после изменения hosts - всё так же.

Я понимаю, что IIS превращает .htaccess в web.config, но у меня он ругается на  ENV:REWRITEBASE и я не могу нажать копку "Применить".
И соответственно не превращает нифига :(
13 Июнь 2014, 17:16:57
Ответ #6
  • Пользователь
  • **
  • Сообщений: 71
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
НАШЁЛ РЕШЕНИЕ!!!!
Спасибо всем ответившим!
Может мой геморрой кому пригодится :)
Версия Prestashop 1.5.6.2       Сервер Windows
Решение: Просто включаете ЧПУ в Настройки -> Seo & Url и в корне вашего сайта ищете web.config. Весь текст веб.конфига меняете на такой (мало ли сайт-источник пропадёт):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^api/?(.*)$" ignoreCase="false" />
                    <action type="Rewrite" url="webservice/dispatcher.php?url={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^([a-z0-9]+)\-([a-z0-9]+)(\-[_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}-{R:2}{R:3}{R:4}.jpg" />
                </rule>
                <rule name="Imported Rule 3" stopProcessing="true">
                    <match url="^([0-9]+)\-([0-9]+)(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}-{R:2}{R:3}.jpg" />
                </rule>
                <rule name="Imported Rule 4" stopProcessing="true">
                    <match url="^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:1}{R:2}{R:3}.jpg" />
                </rule>
                <rule name="Imported Rule 5" stopProcessing="true">
                    <match url="^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:1}{R:2}{R:3}{R:4}.jpg" />
                </rule>
                <rule name="Imported Rule 6" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:1}{R:2}{R:3}{R:4}{R:5}.jpg" />
                </rule>
                <rule name="Imported Rule 7" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:4}/{R:1}{R:2}{R:3}{R:4}{R:5}{R:6}.jpg" />
                </rule>
                <rule name="Imported Rule 8" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:4}/{R:5}/{R:1}{R:2}{R:3}{R:4}{R:5}{R:6}{R:7}.jpg" />
                </rule>
                <rule name="Imported Rule 9" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:4}/{R:5}/{R:6}/{R:1}{R:2}{R:3}{R:4}{R:5}{R:6}{R:7}{R:8}.jpg" />
                </rule>
                <rule name="Imported Rule 10" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:4}/{R:5}/{R:6}/{R:7}/{R:1}{R:2}{R:3}{R:4}{R:5}{R:6}{R:7}{R:8}{R:9}.jpg" />
                </rule>
                <rule name="Imported Rule 11" stopProcessing="true">
                    <match url="^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/p/{R:1}/{R:2}/{R:3}/{R:4}/{R:5}/{R:6}/{R:7}/{R:8}/{R:1}{R:2}{R:3}{R:4}{R:5}{R:6}{R:7}{R:8}{R:9}{R:1}0.jpg" />
                </rule>
                <rule name="Imported Rule 12" stopProcessing="true">
                    <match url="^c/([0-9]+)(\-[_a-zA-Z0-9-\.*]*)(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/c/{R:1}{R:2}{R:3}.jpg" />
                </rule>
                <rule name="Imported Rule 13" stopProcessing="true">
                    <match url="^c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$" ignoreCase="false" />
                    <action type="Rewrite" url="img/c/{R:1}{R:2}.jpg" />
                </rule>
<rule name="Imported Rule 14" stopProcessing="true">
                     <match url="^.*$" />
                     <conditions logicalGrouping="MatchAny">
                         <add input="{REQUEST_FILENAME}" matchType="IsFile" pattern="" ignoreCase="false" />
                         <add input="{REQUEST_FILENAME}" matchType="IsDirectory" pattern="" ignoreCase="false" />
                     </conditions>
                     <action type="None" />
                 </rule>
                 <rule name="Imported Rule 15" stopProcessing="true">
                    <match url="^.*$" />
                     <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>