У меня проблема с REWRITE RULES на.htaccess. Я пытаюсь переписать динамический URL-адрес в статических.
Веб-сайт представляет собой многоязычный веб-сайт. Я уже создал статические URL-адреса для выбранных языков, как показано ниже
www.example.net/index.php?lang= de
www.example.net/de/
...and so on....
Теперь мне нужно переписать URL-запрос следующим образом:
www.example.net/de/player.php?Name=Gianfranco&Surname=Zola&id=468
в
www.example.net/de/spieler-Gianfranco-Zola-468.html
Правило, которое я использовал:
RewriteEngine On
RewriteRule ^de/spieler-([^-]*)-([^-]*)-([^-]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L]
Если я нажму ссылку, чтобы перейти на страницу, связанную с Zola на немецком языке, ссылка dos не перенаправляет меня на запрашиваемую страницу профиля, а на той же странице, на которой я нажал ссылку.
Ссылка, отображаемая в браузере, является правой
www.example.net/de/spieler-Gianfranco-Zola-468.html
но, как было сказано выше, я не могу просмотреть детали, содержащиеся на странице player.php.
Это должно быть так,
RewriteEngine On
RewriteRule de/spieler-([^-]*)-([^-]*)-([^-]*)\.html$ player.php?Name=$1&Surname=$2&id=$3 [L,NC]
Исправление: ^
была проблема, и я удалил '/'
слэш перед player.php
Попробуйте это правило
RewriteRule ^de/spieler-([^-]*)-([^-]*)-([^\.]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L]
Или
RewriteRule ^de/spieler-([^-]*)-([^-]*)-([0-9]*)\.html$ /player.php?Name=$1&Surname=$2&id=$3 [L]
([^-])
только для одной буквы. Используйте([^-]*)
или([^-]+)
вместо этого.+
для 1 и более и*
для 0 и более.