我有一个关于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中的重写方式并不是那么好,所以请忍受我的无知并把我视为新手。
期待听到大师们的意见:)。
答案 0 :(得分:0)
尝试:
RewriteRule ^catalogue-category/([^/]+)/$ /catalogue-category/?cat=$1 [L]
您在正则表达式模式(^
)中使用了插入符^catalogue-category/^([^/]+)/$
两次,插入符号断言匹配应该来自字符串的开头。
- 在字符串«^»
的开头处断言位置- 字面上匹配字符“catalog-category /” «catalog-category /»
- 在字符串开头的断言位置«^»
- 匹配下面的正则表达式 将其匹配捕获到反向引用号1«([^ /] +)»
- 匹配 任何不是“/”«[^ /] +»
- 的字符在一个和一个之间 无限次,尽可能多次,根据需要回馈 (贪心)«+»
- 匹配字符“/” 字面意思«/»
- 断言字符串末尾的位置(或 在字符串末尾的换行符之前,如果有的话)«$»
- 在字符串«^»
的开头处断言位置- 字面上匹配字符“catalog-category /” «catalog-category /»
- 匹配下面的正则表达式和 将其匹配捕获到反向引用号1«([^ /] +)»
- 匹配 任何不是“/”«[^ /] +»
- 的字符在一个和一个之间 无限次,尽可能多次,根据需要回馈 (贪心)«+»
- 匹配字符“/” 字面意思«/»
- 断言字符串末尾的位置(或 在字符串末尾的换行符之前,如果有的话)«$»