Создание правил перезаписи для нескольких URL в одной папке - PullRequest
0 голосов
/ 16 марта 2010

Наш клиент попросил меня преобразовать созданный нами сайт в дружественный SEO-формат. Мне удалось немного продвинуться в этом, но я столкнулся с проблемой наличия одинаковых URL в одной папке.

Я пытаюсь переписать следующие URL,

  1. / обзор / index.php? Чид = InterCasino
  2. / обзор / submit.php? Чид = InterCasino
  3. / обзор / index.php? Чид = InterCasino & страница = 2 # Отзывы

Я хотел бы получить их,

  1. / обзор / InterCasino
  2. / представить-обзор / InterCasino
  3. / обзор / InterCasino / 2 # отзывы

Я почти все заработал, используя следующее правило,

RewriteRule (submit-review)/(.*)$ review/submit.php?cid=$2 [L]
RewriteRule (^review)/(.*) review/index.php?cid=$2

Проблема, как вы уже можете заметить, заключается в том, что / submit-review переписывает в / review, который, в свою очередь, переписывается в index.php, поэтому моя страница отправки обзора теряется вместо моей страницы индекса. Я полагал, что установка [L] предотвратит вызов второго правила, но кажется, что он переписывает оба URL за два отдельных прохода. Я также попробовал [QSE], и [S = 1]

Я бы предпочел не перемещать свои файлы в разные папки, чтобы перезапись работала, так как это кажется слишком плохой практикой. Если бы кто-нибудь мог дать мне несколько советов о том, как провести различие между этими похожими URL-адресами, это было бы здорово!

Спасибо (Ссылка: http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html)

Ответы [ 2 ]

0 голосов
/ 16 марта 2010

Мой друг нашел решение для этого.

RewriteRule review/submit.php - [L]

Перехватит первое переписывание, а затем предотвратит следующее, сработало угощение!

0 голосов
/ 16 марта 2010

То, что я хотел бы сделать, это сделать / представить-обзор / пост непосредственно себе (или файлу php), а затем один раз отправить перенаправление из файла PHP.

Может быть трудно заставить htaccess поддерживать значения записей во время перенаправления и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...