Я делаю youtube, чтобы воспроизводить видео, и я в процессе создания себе веб-сайта, но я застрял в создании некоторых дружественных URL-адресов для SEO с mod_rewrite ниже, это код, который я использую
RewriteRule /lets-play/(.*)/games.php /lets-play.php?platform=$1
Вышеуказанное просто не работает, получите 404 при посещении ожидаемой страницы let-play/PS4/games.php, также попробовал
RewriteRule /lets-play-(.*)-games.php /lets-play.php?platform=$1 (this is the ideal solution)
RewriteRule /lets-play/(.*)\games.php /lets-play.php?platform=$1 (results in 500 error)
То, что у меня есть на данный момент, - это страница, на которой вы можете выбрать платформу из доступного списка (ps4, xbox one, pc и т.д.), Как только вы выберете один из них, вы попадете на URL-адрес, который имеет? Platform = PS4 (или что-то вы выбрали), однако то, что я хочу иметь, это let-play-ps4-игры, если это возможно, если не разрешить играть /ps4/games
Что-то явно не так с моим кодом, что мне не хватает? Я предполагаю, что переписывание просто маскирует URL-адрес, чтобы он выглядел как что-то еще, и перезаписывает движок.
Не могу предоставить ссылку как на локальном хосте.
Благодаря,
Джеймс.
редактировать
Я должен добавить, что я полный новичок в htaccess.
Удалите первую косую черту из RewriteRule
RewriteRule lets-play-(.*)-games.php lets-play.php?platform=$1 [L,QSA] # your ideal solution
RewriteRule lets-play/(.*)/games.php lets-play.php?platform=$1 [L,QSA]
Также добавьте [L]
чтобы прекратить поиск совпадений после нахождения этого
и QSA
для правильного добавления строк запроса.
Это значит
lets-play/PS4/games.php?date=today
будет правильно переписываться
lets-play.php?platform=PS4&date=today
/
out из/lets-play.php
../lets-play.php
поспорить, это потому, что вы находитесь на сайте, подобном ...localhost/test/lets-play-ps4-games.php
и он ищет/localhost/lets-play.php
не/localhost/test/lets-play.php