0

我有一个看起来像这样的 网址 http://mysite.com/item/?food=1&drink=1&bar=1&name=Bomba

我想让它更友好,也许更安全,看起来像 http://mysite.com/item/Bomba

问题是有时饮料或酒吧不会成为 url 的一部分,所以我不知道如何使它与 .htaccess 一起使用。此外,我不知道如何为多个 get 变量制定规则,以及是否可以在重写规则中使用条件(如果 drink==true 或类似的东西)。而且我不想使用帖子,因为我希望能够分享链接。

到目前为止,我做了这样的事情

mysite.com/item/1/Bomba.menu

和规则

选项 +FollowSymlinks
RewriteEngine on
RewriteRule ^item/(.+)/(.+).menu item/?food=$1&drink=$1&bar=$1&name=Bomba [nc]

但它只有在 url 保持不变的情况下才有效。谢谢

4

2 回答 2

1

所以最后我做了这个短链接http://mysite.com/item/1/D1/W1/Bomba把我带到这里 http://mysite.com/item/?food=1&drink=1&wine=1&name=Bomba 并将此规则添加到 .htaccess 文件中。

Options +FollowSymlinks  
RewriteEngine on  
RewriteRule ^item/(.+)/(D.)/(W.)/(B.+)/(.+) item/?food=$1&drink=$1&wine=$1&bar=$1&name=$5 [nc]
RewriteRule ^item/(.+)/(D.+)/(W.+)/(.+) item/?food=$1&drink=$1&wine=$1&name=$4 [nc]
RewriteRule ^item/(.+)/(D.+)/(B.+)/(.+) item/?food=$1&drink=$1&bar=$1&name=$4 [nc]
RewriteRule ^item/(.+)/(W.+)/(B.+)/(.+) item/?food=$1&wine=$1&bar=$1&name=$4 [nc]

我希望它会帮助某人。:)

于 2013-04-29T21:41:56.567 回答
0

[编辑答案]

您需要将它们设置为键/值对,因为您无法判断是饮料还是酒吧 ID。

我能想到的另一种看起来不太优雅的方法是给 id 加上前缀,所以如果它是一个饮料 ID,那么就创建一个动态 URL:

http://mysite.com/item/D1/B4

然后如果它以'D'为前缀,那么它是一种饮料,'B'代表酒吧等

于 2013-04-28T17:03:33.647 回答