Боюсь, вы поступаете неправильно, но нет! На самом деле это обычная проблема, с которой люди сталкиваются при первой работе с правилами переписывания Apache.
Итак, вы получили скрипт - game.php
-, в котором имена игр вводятся через параметр строки запроса game
, поэтому game.php?game=some-game
.
Теперь вы хотите, чтобы ваши URL выглядели красиво, маскируя их по шаблону game/some-game
.
Проблема в том, что вы пытаетесь сделать это, перенаправляя необработанные URL-адреса скриптов на хорошие, и это почти то же самое, что делает любой, кто впервые делает подобные вещи.
Ключ в том, что вы хотите замаскировать URL. То есть вы хотите одеть сырой уродливый URL как что-то более приятное.
Это не работает, потому что вместо маскировки с уродливым вы делаете это наоборот - вы маскируете с уродливым.
То есть, если вы наберете некрасивый URL-адрес, он перенаправит на симпатичный, но проблема в том, что в этом месте нет ресурса, поэтому он не работает.
Что вам нужно сделать, так это замаскировать уродливый URL-адрес с красивым, чтобы при вводе красивого URL-адреса в адресную строку сервер знал, что нужно перейти и отправить запрос на уродливый URL-адрес, а затем обработать полученный ответ. под красивым URL.
Затем вам нужно перейти и обновить ссылки в вашей системе, чтобы использовать красивый URL, и все.
Правило для достижения этого просто так:
RewriteRule ^game/([^/]+) game.php?game=$1 [L]
См. Пример этого здесь: https://htaccess.madewithlove.be? Share = f6863821-b64c-5873-9bd4-9f13b6e4736e