Мод переписать с нумерацией страниц - PullRequest
1 голос
/ 09 марта 2012

Я хочу сделать этот вопрос довольно простым, чтобы надеяться на простой ответ.Я немного новичок в переписывании модов (в большинстве случаев я использовал небольшой cms с использованием index.php?page=x и переписыванием модов под этим именем).У меня есть корзина покупок, созданная иностранцами для моей компании, до того, как я начал работать здесь, практически без документации, и они просят меня сделать поисковую систему корзин дружественной.Я не буду слишком запятнан деталями, просто нужно задать вопрос.

У меня есть, скажем, results.php?name=friendly-url.Я отредактировал .htaccess, чтобы получить доступ к этим страницам с помощью дружественного URL.Это работает отлично.

RewriteRule ^([A-Za-z0-9-]+).html$ results.php?name=1

Теперь в корзине написано, что это неловко разбивает на страницы только потому, что переменная $_GET тупо названа.Я пытаюсь выяснить, без необходимости сильно пачкаться и переименовывать файлы или перенаправлять каталоги в коде, чтобы сделать простую дружественную нумерацию страниц.

Конечный результат, который я ищуэто что-то вроде starter-kits-01.html и starter-kits-02.html и так далее.Это переписывание модов, которое я пытался просто заставить что-то работать.

RewriteRule ^[A-Za-z-0-9-]+).html?p=([0-9]+)$ results.php?name=$1&pageNum_rsCWResults=$2

Это, как я полагал, должно позволить мне сделать starter-kits.html?p=2.Я не получаю ошибку переписывания модов, но она испортила мои $_GET переменные.Я не могу, скажем, /starter-kits/2/ не испачкаться и не пройти через этот грязный код, который сделали иностранцы, и изменить 500 строк каталогов.

Я потратил на это около 30 минут, иУ меня сегодня есть еще 3 проекта, и я собираюсь перейти к ним, пока жду, когда кто-нибудь, немного более опытный в переписывании модов, протянет мне руку помощи.

Очень признателен.

Ответы [ 2 ]

1 голос
/ 09 марта 2012

Просто используйте:

RewriteRule ^([A-Za-z0-9-]+).html$ results.php?name=1 [QSA]

Часть QSA говорит ему пересылать любые параметры GET на перезапись.

http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_qsa

0 голосов
/ 09 марта 2012

Перезапись страницы, которую вам нужно сделать, должна быть сделана на самом PHP и требовать только несколько строк в переписывании модов.Я действительно рекомендую вам скачать копию Drupal или WordPress, чтобы посмотреть, как они это делают.Но в основном вот как это должно работать.

Вы создаете структуру URL следующим образом:

  • product-search / cat-toys
  • product-search / cat-toys / page-1 (должен указывать на то же место, что и предыдущий URL)
  • product-search / cat-toys / page-2 (также можно использовать «product-search / cat-toys / page /»)2)

Вы берете свой сайт и все передаете через центральный файл index.php, перезапись мода позаботится об этом. Вы просто используете URL-адреса на своем сайте, а PHP примет переданные параметрыи проанализируйте его в структуре URL, которая затем приведет вас к результатам.

По существу путь URL передается в index.php к одному параметру при перезаписи мода.

Пример записи перезаписи мода (изDrupal, очень похожий на Wordpress):

  # Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Пожалуйста, ознакомьтесь с этими системами, чтобы получить лучшую идею. WordPress - намного более простая и простая система, через которую можно пройти.

...