Перезапись URL удаляет окончание url

#php #apache #.htaccess #htdocs

#php #apache #.htaccess #htdocs

Вопрос:

Я пытался переписать определенный файл, который у меня есть, /u.php/example, просто в /u/example с помощью htaccess. Часть /example я получу и буду использовать с помощью синтаксического анализа php url.

Итак, еще один вопрос, который я прочитал, предложил использовать следующий код

 RewriteCond %{THE_REQUEST} /(u|a).php [NC]
RewriteRule ^ /%1 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]
  

Но это не сохраняет /example из /u.php/example при перезаписи и вызывает ошибку 500, если я просто ввожу /u/example .

Есть ли обходной путь для этого? В чем может быть проблема? Я не смог найти решение в стеке.

Комментарии:

1. В настоящее время вы можете проверить ошибку здесь … anischedule.com/u/test Если он не был обновлен, вы можете увидеть, что произошла ошибка.

Ответ №1:

Вам нужно захватить и перенаправить /example часть из URI

 RewriteCond %{THE_REQUEST} /(u|a).php/([^s]*) [NC]
RewriteRule ^ /%1/%2 [L,R]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/(.*)?$ /$1.php/$2 [L]