mod_rewrite SEO дружественный URL

0

Я делаю 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.

Теги:
.htaccess
mod-rewrite

1 ответ

1
Лучший ответ

Удалите первую косую черту из 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

  • 0
    Спасибо за помощь, теперь я получаю сообщение об ошибке «Запрошенный URL /lets-play.php не найден на этом сервере». не уверен на 100%, так как у меня на 100% есть страница с таким названием.
  • 0
    Что ж, переписывание теперь работает ... возьмите / out из /lets-play.php .. /lets-play.php поспорить, это потому, что вы находитесь на сайте, подобном ... localhost/test/lets-play-ps4-games.php и он ищет /localhost/lets-play.php не /localhost/test/lets-play.php
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню