我有一个看起来像这样的网址 http://mysite.com/item/?food=1&drink=1&bar=1&name=Bomba
我想让它更友好,也许更安全,看起来像 http://mysite.com/item/Bomba
问题是有时饮料或酒吧不会成为网址的一部分,因此我不知道如何使用.htaccess。此外,我不知道如何为多个get变量制定规则,如果我可以在重写规则中使用条件(如果drink == true或类似的东西)。 而且我也不想使用帖子,因为我希望能够分享链接。
到目前为止,我做了类似的事情
mysite.com/item/1/Bomba.menu
和规则
选项+ FollowSymlinks
重写引擎
RewriteRule ^ item /(.+)/(.+)。菜单项/?food = $ 1& drink = $ 1& bar = $ 1& name = Bomba [nc]
但它只有在网址保持不变的情况下才有效。 感谢
答案 0 :(得分: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]
我希望它会对某人有所帮助。 :)
答案 1 :(得分:0)
[编辑答案]
您需要将它们设置为键/值对,因为您无法判断它是饮品还是酒吧ID。
我能想到的另一种方式,看起来不那么优雅,就是为ID添加前缀,所以如果它是一个饮料ID,那么制作动态网址:
http://mysite.com/item/D1/B4
然后如果它以'D'为前缀,则它是一种饮料,'B'用于酒吧等