0

我经历了几个不同的问题,例如: 重写所有 URL

mod_rewrite 可以转换任意数量的任意名称的参数吗?

在 htaccess 中创建动态 URL

这帮助我将一组网址从 domain.com/script2.php?d=1 更改为 domain.com/(d),但现在我遇到了一些我找不到答案的问题。目前,我有一组 URL 设置为:domain.com/script.php?a=1

虽然我知道如何将这些 URL 更改为 domain.com/(a) 但这并不能帮助我解决这个问题,因为变量 A 只是一个数字标识符,所以从 domain.com/script.php?products=1 到domain.com/1 对我没有什么好处。

相反,它是变量 B,它实际上是描述符 ProductName。所以我想要做的是拥有它,而不是 domain.com/(a),我可以获得 domain.com/(b)。有一个并发症。最初设置使用变量A的原因是多个产品在变量B中使用相同的描述符,所以我还需要包括区分它们的变量C,所以我需要URL是domain.com/(b)-( C)。

奖金!还记得我说过我有另一个脚本从 domain.com/script2.php?d=1 更改为 domain.com/(d) 吗?好吧,如果我可以将当​​前脚本设置为不显示为 domain.com/(b)-(c) 而是显示为 domain.com/(d)/(b)-(c) 那就太棒了因为 domain/(d) 实际上是这个其他脚本的搜索页面,所以它是一个非常合乎逻辑的流程,并且会真正简化浏览,并且可以让用户在搜索和产品之间直观地移动而无需太多工作。

我不知道这是否可能,但任何帮助将不胜感激。

4

1 回答 1

1

为什么不将所有内容都重写回您的脚本文件?

RewriteEngine on
RewriteBase /

RewriteRule .* index.php [L]

将所有内容重写回 index.php。从那里您可以解析$_SERVER['REQUEST_URI']PHP 中的变量。从那里您可以根据给定的 url 决定要加载的页面。

如果您在上述重写规则的同一目录中有任何其他文件夹,RewriteEngine Off如果您不希望将它们重写回 index.php,则可以将另一个 .htaccess 文件放入其中。这就是 css 文件或站点图像所需要的。

使用这种方法,你总是可以做这样的事情。domain.com/products/1 或 domain.com/search/blahblah

于 2013-01-11T01:26:30.167 回答