.htaccess modrewrite问题

时间:2011-07-11 08:56:41

标签: apache wordpress .htaccess mod-rewrite wordpress-plugin

我有一个关于wordpress的网站,我已经写了一个插件,需要SEO友好的URL现在我被困在以下

http://domain.com/catalogue-category/1/工作正常,但当我将/1/替换为http://domain.com/catalogue-category/Seating/类别的名称时,它根本不起作用并且给我404错误。< / p>

它也在/catalogue-category/?cat=Seating

工作

我的apache重写规则是

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

我在PHP中的重写方式并不是那么好,所以请忍受我的无知并把我视为新手。

期待听到大师们的意见:)。

1 个答案:

答案 0 :(得分:0)

尝试:

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

您在正则表达式模式(^)中使用了插入符^catalogue-category/^([^/]+)/$两次,插入符号断言匹配应该来自字符串的开头。

模式说明

以前的模式:

  
  1. 在字符串«^»
  2. 的开头处断言位置   
  3. 字面上匹配字符“catalog-category /”   «catalog-category /»
  4. 在字符串开头的断言位置«^»
  5. 匹配下面的正则表达式   将其匹配捕获到反向引用号1«([^ /] +)»
    1. 匹配   任何不是“/”«[^ /] +»
      1. 的字符在一个和一个之间   无限次,尽可能多次,根据需要回馈   (贪心)«+»
  6. 匹配字符“/”   字面意思«/»
  7. 断言字符串末尾的位置(或   在字符串末尾的换行符之前,如果有的话)«$»

建议

  
  1. 在字符串«^»
  2. 的开头处断言位置   
  3. 字面上匹配字符“catalog-category /”   «catalog-category /»
  4. 匹配下面的正则表达式和   将其匹配捕获到反向引用号1«([^ /] +)»
    1. 匹配   任何不是“/”«[^ /] +»
      1. 的字符在一个和一个之间   无限次,尽可能多次,根据需要回馈   (贪心)«+»
  5. 匹配字符“/”   字面意思«/»
  6. 断言字符串末尾的位置(或   在字符串末尾的换行符之前,如果有的话)«$»