我经历了一些不同的问题,例如: Rewrite for all URLs
Can mod_rewrite convert any number of parameters with any names?
Creating dynamic URLs in htaccess
这帮助我将一组网址从domain.com/script2.php?d=1更改为domain.com/(d),但现在我遇到了一些我找不到答案的网址。目前,我有一组URL设置为: domain.com/script.php?a=1
虽然我知道如何将这些网址更改为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),那将是非常棒的。因为域/(d)实际上是这个其他脚本的搜索页面,所以它是一个非常合乎逻辑的流程,可以真正简化浏览,并且可以让用户直观地在搜索和产品之间移动而无需太多工作。
我不知道这是否可行,但任何帮助都会受到赞赏。
答案 0 :(得分:1)
为什么不将所有内容重写回脚本文件?
RewriteEngine on
RewriteBase /
RewriteRule .* index.php [L]
将所有内容重写回index.php。从那里你可以解析PHP中的$_SERVER['REQUEST_URI']
变量。从那里,您可以根据给定的URL确定要加载的页面。
如果您在上面的重写规则的同一目录中有任何其他文件夹,如果您不希望将它们重写回index.php,则可以将另一个.htaccess文件放在具有RewriteEngine Off
的文件中。 。这就是css文件或站点图像所需要的。
使用此方法,您可以始终执行此类操作。 domain.com/products/1 或者,domain / search / blahblah