.htaccess не конвертирует грязный URL в чистый URL

У меня есть URL с именем www.example.com/print?id=adder

Я хочу, чтобы это выглядело как www.example.com/print/adder

Я использую следующий код .htacces

RewriteEngine on

# redirect all requests except only POST
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.(?:php?)[\s?/] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteRule ^print/([a-z]+) print.php?id=$1 [NC,L]

Но все же, у меня есть URL, как www.example.com/print?id=adder,

я использую wamp 3.0.6(Latest Version), PHP 7.0,10 & Apache 2.4.23, Почему я сталкиваюсь с этой проблемой. Почему код не работает?

1

Решение

Чтобы перенаправить ваш URL-адрес в более чистую версию, поместите это выше вашего последнего RewriteRule

RewriteCond %{THE_REQUEST} /print/?(?:\.php)?\?id=([^\s&]+)
RewriteRule ^ /print/%1? [L,R]
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector