Помогите настроить любой ЧПУ через htaccess

12 3
xoxol4uk22
На сайте с 14.11.2017
Offline
66
1630

Можете, пожалуйста, подсказать, как сделать ЧПУ, когда у меня страницы:

site.ru/index.php?id_article=5 (меняется только последняя цифра)

а я хочу, чтобы было просто:

site.ru/index.php/5

или любой другой вариант более человечного

Я много что пробовал, но не получается(( целый день убью, но боюсь, что так и не сделаю

M
На сайте с 04.12.2013
Offline
223
#1

Использование пути вместо GET-параметров еще не означает, что это полноценные ЧПУ.

/index.php/5 – фиг знает, какой смысл несет первый компонент пути; числовые идентификаторы менее предпочтительны. Конкретно такую адресацию можно сделать при помощи PATH_INFO.

Если хотите сделать что-то более полноценное, используйте единую точку входа и обработку полного адреса.

Домены и скрипт для коротких ссылок: https://u75.ru/domains-for-shortcuts
S
На сайте с 30.09.2016
Offline
469
#2

xoxol4uk22, ЧПУ обычно через движок делают, а не через хтакцесс. В хтакцессе только на index.php направляют.

Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
M
На сайте с 04.10.2011
Offline
90
#3

xoxol4uk22,

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

Не проверял, но где-то так

Сдается, обращаться скайп avdesk-it-kmm Верстка, кодинг - контакты в профиле... VPS от 5€ (https://gmhost.com.ua/?partner=10255)
xoxol4uk22
На сайте с 14.11.2017
Offline
66
#4
miketomlin:
Использование пути вместо GET-параметров еще не означает, что это полноценные ЧПУ.

/index.php/5 – фиг знает, какой смысл несет первый компонент пути;

Вы правы, то я случайно оставил. Мне бы лучше /page-5 или просто даже таки 5...

mmkulikov:
xoxol4uk22,
Не проверял, но где-то так

Спасибо, но не хочет так работать((

У меня вот такой сейчас htaccess:

Может место вставки роль играет? Но я пробовал и после, и вместо редиректа...

M
На сайте с 04.12.2013
Offline
223
#5

Редиректы в .htaccess обычно нужно писать в начале и не забывать про флаг L (он у вас есть).

M
На сайте с 04.10.2011
Offline
90
#6

xoxol4uk22, Попоробуйте сразу после Вашего вот так

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule /([\d]+)/$ /index.php?id_article=$1 [L]

Но это надо тестировать и смотреть всё в комплексе...

M
На сайте с 04.12.2013
Offline
223
#7

P.S. Если не получается, проблема может быть связана с конфликтом рерайта и редиректа. Обходится обычно при помощи условия с THE_REQUEST для редиректа.

xoxol4uk22
На сайте с 14.11.2017
Offline
66
#8
miketomlin:
P.S. Если не получается, проблема может быть связана с конфликтом рерайта и редиректа. Обходится обычно при помощи условия с THE_REQUEST для редиректа.

Спасибо Вам большое за помощь. К сожалению, не работает(( Да, понимаю, что это нужно смотреть...

А на счет условия {THE_REQUEST}, как я понимаю, им нужно заменить {QUERY_STRING} ? Но в таком варианте редирект перестает работать, рерайт тоже не начинает. Даже если редирект вообще убрать, а оставить только включение "RewriteEngine", то все равно адреса не меняются((

В любом случае очень благодарен. Просто далек я от этого, я ведь СЕОшник, который рос на Вордпресс. А теперь пытается ходить подучится :)

M
На сайте с 04.12.2013
Offline
223
#9

Сделайте все через единую точку входа, не мучая .htaccess сомнительными частными хаками.

А для меню на фронте подобный редирект – это вообще зло, о чем я писал в соседней теме. Сделайте в меню прямую ссылку, а все левые запросы закройте 404-ой. Старая ссылка где-нибудь публиковалась кроме вашего сайта?

xoxol4uk22
На сайте с 14.11.2017
Offline
66
#10
miketomlin:
Сделайте все через единую точку входа, не мучая .htaccess сомнительными частными хаками.

А для меню на фронте подобный редирект – это вообще зло, о чем я писал в соседней теме. Сделайте в меню прямую ссылку, а все левые запросы закройте 404-ой. Старая ссылка где-нибудь публиковалась кроме вашего сайта?

Нет, это новый сайт. Старая ссылка то нигде не публиковалась...

Но там все не так просто, это меню генерируется с БД, как и его главный пункт. Скрипт этот сайта мне делали на заказ, а вот до ума некоторые нюансы не подоводили... Моих знаний не достаточно, чтобы все это править.

Чисто ради интереса покажу Вам в ЛС, что собой это мое творение представляет.

---------- Добавлено 08.07.2018 в 22:36 ----------

По идее вот эту строчку поправить надо, но видимо не только ее, а то при любых правках все рушится((

<a class="menu__link" href="/index.php?id_article=<?= $cat["id"]; ?>"><?= $cat["name"]; ?></a>
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий