.htaccess проблема с modrewrite - PullRequest
0 голосов
/ 11 июля 2011

У меня есть веб-сайт на WordPress, и я написал плагин, который требовал оптимизированного для SEO URL. Теперь я застрял на следующем

http://domain.com/catalogue-category/1/ работает нормально, но когда я заменяю /1/ на имятакой категории, как http://domain.com/catalogue-category/Seating/, она вообще не работает и выдает ошибку 404.

Она также работает при /catalogue-category/?cat=Seating

Мое правило переписывания apache:

RewriteRule ^catalogue-category/^([^/]+)/$ /catalogue-category/?cat=$1 [L]

Я не так хорош в переписывании модов, как в PHP, поэтому, пожалуйста, прими мое невежество и относись ко мне как к новичку.

С нетерпением жду ответа от гуру:)

1 Ответ

0 голосов
/ 11 июля 2011

Попробуйте:

RewriteRule ^catalogue-category/([^/]+)/$ /catalogue-category/?cat=$1 [L]

Вы дважды использовали каретку ^ в своем шаблоне регулярных выражений (^catalogue-category/^([^/]+)/$), каретка утверждает, что совпадение должно быть с начала строки.

Пояснения к шаблону

Предыдущий шаблон:

  1. Утверждение позиции в начале строки «^»
  2. Соответствие символам «catalogue-»category / »буквально« catalog-category / »
  3. Утвердить позицию в начале строки« ^ »
  4. Сопоставить приведенное ниже регулярное выражение и записать его совпадение в число с обратной ссылкой 1« ([^/] +) »
    1. Соответствует любому символу, который НЕ является символом« / »« [^ /] + »
      1. От одного до неограниченного количества раз, столько раз, сколько возможно, возвращая при необходимости(жадный) «+»
  5. Соответствует символу «/» буквально «/»
  6. Утверждение позиции в конце строки (илидо разрыва строки в конце строки, если есть) «$»

Рекомендуется один

  1. Утверждение позиции в начале строки «^»
  2. Соответствует символам «catalog-category /» буквально «catalog-category /»
  3. Сопоставьте приведенное ниже регулярное выражение и сохраните его соответствие в обратном номере 1 «([^ /] +)»
    1. Соответствует любому символу, который НЕ является «/» «[^ /] +»
      1. От одного до неограниченного количества раз, столько раз, сколько возможно, возвращая по мере необходимости (жадный) «+»
  4. Соответствуйте символу «/» буквально «/»
  5. Утверждение позиции в конце строки (или до разрыва строки в конце строки, если есть)« $ »
...