繁体   English   中英

.htaccess用于扁平链接的RewriteRule

[英].htaccess RewriteRule for Flat Links

我对使用RewriteRule很新,所以我可能会遗漏一些明显的东西,但我有一个PHP脚本,它采用如下的URL变量:

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

我想创建RewriteRules,以便任何输入此脚本名称/变量组合的人都会将其URL重写为:

{baseurl}/properties/Property-Name

除了确保输入flat-link url的任何人,实际上使用正确的变量名称和值调用脚本。

我一直在指这个链接 ,我找到了相关的主题:

Mod_rewrite扁平链接

Mod_rewrite麻烦:想要从?=指向扁平链接,似乎没什么用

但是,我显然做错了,因为我无法让这个URL按照我想要的方式工作。 我目前正在使用以下代码,它似乎什么都不做(除了重写URL以包含www,并将index.php的请求重定向到站点根目录):

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]+)/?$

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM