.htaccess平面链接的重写规则

我是使用RewriteRule的新手,所以我可能会丢失一些明显的东西,但是我有一个PHP脚本,它可以像下面这样使用URLvariables:

{baseurl}properties.php?prop=Property-Name 

我想创buildRewriteRules,以便任何在这个脚本名称/variables组合中input的人将其URL改写为:

 {baseurl}/properties/Property-Name 

以及确保任何谁在types的平面链接url,实际上调用正确的variables名称和值的脚本。

我一直在指这个链接 ,我发现相关的线程:

Mod_rewrite平面链接

Mod_rewrite麻烦:想从?=直接链接到一个平面链接,似乎没有任何工作

但是,我显然做错了,因为我无法得到这个URL以我想要的方式工作。 我目前使用下面的代码,除了重写URL以包含www,以及将index.php的请求redirect到站点根目录之外,它似乎什么都不做

 RewriteEngine ON RewriteCond %{HTTP_HOST} ^baseurl.com$ [NC] RewriteRule ^(.*)$ http://www.baseurl.com/$1 [R=301,L] RewriteRule ^index.php / [R=301,L] RewriteRule ^properties/([0-9A-Za-z]+)/$ /properties.php?prop=$1 

这个问题显然是最后一个RewriteRule,假设没有任何影响。 再次,我可能做一些荒谬的事情。 有人能解释我在做什么错吗?

谢谢你的帮助。

匆匆一瞥,似乎你忘了在正则表达式中包含短划线,并且包含了尾部的斜线。 用这个代替:

 RewriteRule ^properties/([0-9A-Za-z-]+)$ /properties.php?prop=$1 

如果你看看你的规则^properties/([0-9A-Za-z]+)/$你会发现它需要以正斜杠结束。 你可以删除它,或者使其成为可选项,例如^properties/([0-9A-Za-z]+)/?$