有人能提示我正确的方向使用mod_rewrite吗?

时间:2013-12-30 15:47:29

标签: apache .htaccess mod-rewrite url-rewriting

我对此有点新意,但我正在努力学习。我知道在PHP中我们可以有一个以?id=something结尾的URL,但在我看来,有些网站只是正斜杠。这可能使用PHP吗?我看到these questions似乎说它有可能,但我还没有破解它。

有人可以向我mod_rewrite提示正确的方向吗?我想更改以下网址

http://www.example.com/all-products/?onsale=true&topic=health&item=adaaos45

http://www.example.com/all-products/items-on-sale/health/adaaos45

你能指出我的正确方法吗?

1 个答案:

答案 0 :(得分:6)

您正在寻找的是Apache Url Rewriting。

我会稍微分解一下,以帮助您理解,有助于了解regex

这里有很多答案可以讨论这个方法,但总而言之,你需要做三件事。

# Switch on URL Rewriting
# Choose the URL that you want to display  
# Point it to the true URL that gives the information.

Options FollowSymLinks
RewriteEngine On

RewriteRule ^all-products/items-on-sale/health/adaaos45/?$ all-products/?onsale=true&topic=health&item=adaaos45 [NC,L]

当然,如果您想要匹配变量的任何结果,您需要匹配正则表达式中的单词,并记住它,并在行的最后部分使用它。但这应该让你开始了解正在发生的事情。

在.htaccess中使用此代码,浏览

http://www.example.com/all-products/items-on-sale/health/ adaaos45

将显示此页面上显示的内容。

http://www.example.com/all-products/?onsale=true&topic=health&item=adaaos45