Лучший способ удалить = и? от метода get в PHP?

Каков наилучший способ удалить = и? в URL-адресе из метода get в PHP? Я работаю над структурой разбиения на страницы моего веб-сайта, и в настоящее время это выглядит так:

www.example/test/?page=3 

Я хочу, чтобы это выглядело так:

 www.example/test/3 

Может ли это быть рассмотрено непосредственно в методе PHP get с некоторым дополнительным кодом или это нужно сделать через файл htaccess?

Вот как выглядит мой htaccess-файл прямо сейчас:

 RewriteBase / RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html RewriteCond %{REQUEST_URI} /index\.html?$ [NC] RewriteRule ^(.*)index\.html?$ "/$1" [NC,R=301,NE,L] 

Solutions Collecting From Web of "Лучший способ удалить = и? от метода get в PHP?"

Вот моя попытка, я сжал уже существующий ответ из разных тем StackOverflow, посвященных извлечению URL-адресов, и я придумал это решение:

 <?php function http_protocol() { /** * @see https://stackoverflow.com/a/6768831/3753055 */ return (isset($_SERVER['HTTPS']) ? 'https' : 'http') . '://'; } function http_host() { return $_SERVER['HTTP_HOST']; } function http_uri() { return parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH); } function http_refactored_query_strings() { $queries = explode('&', $_SERVER['QUERY_STRING']); $refactoredQueries = []; foreach( $queries as $query ) { $refactoredQueries[] = filter_var(explode('=', $query)[1], FILTER_SANITIZE_STRING); } $queries = implode('/', $refactoredQueries); return $queries ?: ''; } function http_refactored_url() { return http_protocol() . http_host() . http_uri() . http_refactored_query_strings(); } echo http_refactored_url(); ?> 

Попробовал несколько примеров:

Для части рефакторинга строки запроса я использовал $_SERVER['QUERY_STRING] и взорвал значение в & character. потому что первый ? не содержится в $_SERVER['QUERY_STRING'] . Таким образом, вы придумываете множество массивов, содержащих строки, такие как page=3 , view=page , … И заходите, разделите его с помощью = разделителя и получите второй элемент (index: 1 ), чтобы добавить его в решение.

Надеюсь, поможет

Вы можете сделать это, используя промежуточную страницу, скажем, index.php и применить .htaccess переписать только для страницы индекса и загрузки на основе GET [] на index.php.

Вы можете сослаться на это: переписывание URL-адресов в PHP без htaccess