• DONATE to NULLED!
    Вы можете помочь Форуму и команде, поддержать финансово.
    starwanderer - модератор этого раздела будет Вам благодарен!

Помощь Нужно решить проблему с index.php

Dmytro_ua

Местный житель
Регистрация
15 Фев 2008
Сообщения
244
Реакции
20
Медленно, но уверено переползаю с древнего шопскрипта, на вукоммерс и возникла необходимость придумать способ сохранения старых ссылок в виде index.php?productID=11111
Нашел несколько плагинов, которые прописывают либо как альтернативная ссылка, либо вместо основной. В итоге ссылку на товар я получаю, но сам WP переписывает index.php и при переходе я получаю ?productID=11111
Если я не ошибаюсь, тут дело кроется в htaccess. Там прописан rewrite

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Но я в этом синтаксисе не особо шарю, есть какой-то способ что-то исправить, чтобы и не убить рабочий ЧПУ на WP, и при этом дать мне возможность в адресной строке получать подобные адреса index.php?productID=11111 ?
 
Woocommerce не самая хорошая платформа для онлайн-коммерции. Обычно я его предлагаю заказчикам только в случаях:
1. Если требуется мультиязычный магазин (совместно с плагином QTranslate-X).
2. Если у заказчика уже есть магазин на WordPress, но без WooCommerce, чтобы не мучатся.

Во всех остальных случая рекомендую использовать:
1. При малом к-ве товаров (до 100). Чистый WordPress с формой заказа и уведомлениями на почту.
2. При большом к-ве товаров WebAsyst Shop-Script последних версий.

Что касается вопроса в топике, то нужно прописать редиректы в файле .htaccess сразу после строки RewriteBase
Код:
RewriteBase /
# тут ваши редиректы
RewriteRule ^index\.php$ - [L]
В этом случае они будут срабатывать до основных редиректов движка.
 
Что касается вопроса в топике, то нужно прописать редиректы в файле .htaccess сразу после строки RewriteBase
RewriteBase /
# тут ваши редиректы
RewriteRule ^index\.php$ - [L]

В этом случае они будут срабатывать до основных редиректов движка.

Попробовал редирект на конкретную ссылку, все равно отрезает index.php и ссылка получается мойсайт.ком/?productID=1570
Что я делаю не так?

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
Redirect 301 /index.php?productID=1570/ Для просмотра ссылки Войди или Зарегистрируйся
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 
Код:
function custom_rewrite_rule() {
   add_rewrite_rule('([^?]+)productID=([0-9]+)?/?$', 'index.php?product=$matches[2]', 'top');
}
add_action( 'init', 'custom_rewrite_rule', 0 );
Это пихнуть в functions.php темы или сделать плагином.
Возможно не совсем корректную регулярку написал, но идея работающая
 
Назад
Сверху