Перепишите правило SEO-дружественного из php url. У меня ошибка страницы 404.

Вопрос или проблема

Я хочу перенаправить с этого URL:

https://mediasportweb.com/TEMPLATEAUTO/marca.php?auto=Ferrari 

на этот:

https://mediasportweb.com/TEMPLATEAUTO/marca/Ferrari/

Мой сервер на HostGator. Я получаю ошибку 404 при посещении URL. Это мое правило для перезаписи URL:

Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/marca/([^/]*)$ marca.php?auto=$1 [NC,L,QSA]

Где ошибка?

Похоже, есть проблема с регулярным выражением. Попробуйте обновить ваше правило на:

Options +FollowSymLinks
RewriteEngine On
# RewriteBase /TEMPLATEAUTO/ #по желанию; раскомментируйте это, если все еще не работает
RewriteRule ^marca/([^/]+)/?$ marca.php?auto=$1 [NC,L,QSA]

.

Ответ или решение

Чтобы исправить проблему с перенаправлением URL и 404 ошибкой на вашем сайте, я предлагаю следующее пошаговое решение. Мы будем использовать файл .htaccess для настройки правил перенаправления. Ваша цель — изменить URL-адреса с параметром auto на более дружественные для SEO, такие как /marca/Ferrari/.

Шаг 1: Очистка файла .htaccess

Убедитесь, что ваш файл .htaccess не содержит лишних или конфликтующих правил. Минимальная настройка должна выглядеть следующим образом:

Options +FollowSymLinks
RewriteEngine On

Шаг 2: Правила переписывания

Ваше изначальное правило переписывания имеет несколько ошибок, связанных с синтаксисом и отсутствием правильного пути. Попробуйте изменить его следующим образом:

RewriteRule ^TEMPLATEAUTO/marca/([^/]+)/?$ TEMPLATEAUTO/marca.php?auto=$1 [NC,L,QSA]

Объяснение

  1. ^TEMPLATEAUTO/marca/([^/]+)/?$: Это регулярное выражение ищет URL, начинающиеся с TEMPLATEAUTO/marca/, за которым следует любое слово (в вашем случае, название автомобиля), и заканчивается на /. Знак вопроса (?) в конце означает, что слеш может быть как присутствовать, так и отсутствовать.

  2. TEMPLATEAUTO/marca.php?auto=$1: Это перенаправление будет обрабатывать запросы к marca.php, передавая в него значение, захваченное в первом наборе скобок ([^/]+), как параметр auto.

  3. [NC,L,QSA]: Эти флаги указывают:

    • NC: Игнорировать регистр (будет работать как для ferrari, так и для Ferrari).
    • L: Завершить дальнейшую обработку правил, если это правило сработало.
    • QSA: Сохранять любые другие параметры запроса, которые могут быть добавлены.

Шаг 3: Проверка

После внесения изменений, обязательно проверьте следующее:

  • Убедитесь, что файл .htaccess находится в корневом каталоге вашего приложения.
  • Проверьте права доступа к файлу. Обычно это 644 (доступ для пользователя на чтение и запись, для группы и остальных – только на чтение).
  • Очистите кеш вашего браузера или протестируйте в режиме инкогнито, чтобы увидеть изменения.

Шаг 4: Тестирование

Теперь вы можете перейти по адресу:

https://mediasportweb.com/TEMPLATEAUTO/marca/Ferrari/

и убедиться, что все работает корректно, и вы не получаете ошибку 404.

Заключение

Следуя приведенным выше шагам, вы сможете успешно перенаправить старые, не SEO-дружественные URL на более подходящие варианты. Если проблемы сохраняются, рекомендуется проверить, разрешены ли модули переписывания (mod_rewrite) на вашем сервере, так как это также может быть причиной неправильной работы правил.

Оцените материал
Добавить комментарий

Капча загружается...