Проблема с дружественным перенаправлением URL в htaccess - PullRequest
1 голос
/ 07 ноября 2019

Я использую Apache 2.4.33 в Windows 10. Поскольку я обновил новую версию Apache, эти строки htaccess больше не работают

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    RewriteRule ^([a-z]{2})/([\+a-z\ /-]+)\.php$ index.php?lng=$1&page=$2 [L]

    RewriteRule ^([a-z]{2})/([\+a-z\ ]+)\.php/([\+a-z\ ]+)/([\+a-z\ ]+) index.php?lng=$1&page=$2&choice=$3&item=$4 [L]

Цель - перенаправление

mydomain. com / fr / page.php

до

mydomain.com / index.php? lng = fr & page = page

Но со строками выше в .htaccess я получаю толькоошибка 404. Обратите внимание, что Rewrite отлично работал раньше. На моем сервере включен modRewrite, и он работает с другими сайтами.

Большое спасибо! Dan

1 Ответ

1 голос
/ 07 ноября 2019

Я решил проблему! Проблема заключалась в том, что htaccess не был включен для этой учетной записи. Мне пришлось добавить эти строки кода в мой httpd.conf

<Directory D:/pages_perso/Websites/mynewsite>
  Order Deny,Allow
  Allow from all
  AllowOverride All
  Require all granted
</Directory>

. Для всех, у кого есть подобные проблемы:

  1. Сначала проверьте, работает ли .htaccess. Чтобы проверить это, просто добавьте в него любой недействительный текст, скажем Test
  2. Затем запустите свою страницу. Если вы видите внутреннюю ошибку сервера, значит, ваш htaccess работает. Если вы ничего не видите, добавьте вышеуказанные строки в httpd.conf
  3. Проверьте, включен ли ModRewrite. Для этого добавьте страницу phpinfo.php на свой сервер. Добавьте в это. Тогда беги. Искать ModRewrite
...