我正在尝试理解一些规则或重写引擎,但我无法想象如何去做。
我有这个链接:
w**.example.com/index.php?city=new+york
我希望重写这个新内容:
w**.example.com/good-parties-in-new-york
城市的价值可以改变到任何其他城市。 但这里的重点是,如果所有的关键是:
,我只需重写一下index.php?city =
因为
的index.php?区= 的
用于其他事物等... 有什么建议吗?感谢。
答案 0 :(得分:0)
我对你想要达到的目标有点困惑。通常进行URL重写以使URL看起来更好,而不是相反。
您通常希望拥有一个像这样的好网址(您可以与用户沟通):
w**.example.com/good-parties-in-new-york
充当这样一个看起来不那么漂亮的URL的“别名”(=正在提供的实际页面,用户不知道):
w**.example.com/index.php?city=new+york
使用Rewrite,您可以反向引用正则表达式。在这种情况下,您可以将“nice”URL的一部分转换为RegEx,然后使用后台工作的页面的查询字符串中的变量对其进行反向引用。
E.g:
RewriteEngine On
RewriteBase /
RewriteRule ^good-parties-in-([a-z]+)-([a-z]+)$ index.php?city=$1+$2 [NC,L]
第一个RegEx(([a-z]+)
)被引用为$1
,第二个引用为$2
(依此类推)。
请注意,此示例仅适用于由两个单词组成的城市名称,例如纽约,旧金山等。您必须弄清楚城市名称可以包含多少单词,并相应地重写您的代码。 (您可能还需要设置不同的标志。)
另外,你应该确保你的php脚本检查现有的城市名称并抛出适当的错误/如果用户输入幻想名称,如魔术彩虹城市或类似的好派对,则会发出警告。
如果这不是你想要的,也许你可以澄清你的问题?