mod_rewrite不使用字母数字值

时间:2016-04-20 22:24:09

标签: php apache .htaccess mod-rewrite

我正在尝试使用htaccess进行简单的url重写转换:

example.com/test/?product_name=name-of product

example.com/test/name-of-product

要做到这一点,我正在使用:

RewriteEngine On

RewriteRule    ^test/([A-Za-z0-9]+)/?$    test/?product_name=$1   [NC,L]

当product_name是数字(example.com/test/200/)时,这可以正常工作,但当product_name是alpha或alphanumeric时,它不起作用(example.com/test/abc /)

使用字母或字母数字值

时,我找不到Page Not Found

我在网上看到的所有东西似乎告诉我这应该有用,但我遗漏了一些东西。任何想法为什么不起作用?或者也许是实现这个目标的最好方法(制作一个漂亮的网址)?

  

其他信息。我做了一些研究,因为这是一个WordPress网站,/ test /实际上也是一个变量,所以网站网址是

example.com/?page_id=611

我认为我在product_name = name-of product附加了,所以网址可能看起来像(我认为)

example.com/?page_id=611&product_name=name-of product

但page_id将始终相同(611)。如果我的想法是正确的,那么htaccess的重写是什么样的?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

好的,我根据mario和splash58的问题做了更多的研究,结果证明这是一个wordpress问题,而不是mod_rewrite。这可以使用wordpress重写API来解决。详细信息和示例在wordpress网站上:

https://codex.wordpress.org/Rewrite_API/add_rewrite_rule