0

我有一行代码使用 mod_rewrite 从数据库中提取结果:

example.com/anytext/itemid 使用以下 URL:example.com/item.php?id=itemid

一个简单的重写。但是,我想制定一个优于它的规则。跟随以了解我的意思:

.htaccess 文件示例:

RewriteRule ^products/[^/]+/(.*)$    products/item.php?id=$1 [L]

此规则告诉example.com/products/anytext/itemid 使用item.php“/”之后使用 URL 的最后一部分显示,即项目 ID。

但是,我希望一些 URL 被重定向而不是重写。例如:

products/green-dress/4023成为:

products/green-dress-with-stain/4023 没有重写规则!

现在,我在 .htaccess 中尝试了一个简单的 301 重定向,但它以某种方式干扰了重写规则。

而不是去

products/green-dress-with-stain/4023它去:

products/green-dress-with-stain4023?id=4023

看看最后的 URL 是如何获取变量的?诡异的!

谢谢,戴夫

4

1 回答 1

0

文件中的规则按.htaccess顺序执行,因此如果您需要一个规则优先于其他规则,只需将其放在文件的首位即可。

于 2013-02-06T21:57:58.710 回答