我正在使用这个htaccess代码..
RewriteRule ^city/barcelona ?what=2&type=barcelona
RewriteRule ^city/newyork ?what=2&type=newyork
RewriteRule ^city/paris ?what=2&type=paris
RewriteRule ^city/london ?what=2&type=london
RewriteRule ^city/milan ?what=2&type=milan
RewriteRule ^city ?what=3 [L]
但是,当我打开 www.example.com/city/tokyo 时,会打开 www.example.com/city (没有东京选项..它必须返回404页面)
如何更正我的htaccess代码?
(例如..我可以这样说:如果城市是newyork,巴黎或伦敦,请执行此重写规则.. else = 404)
答案 0 :(得分:1)
由于您的规则中没有使用锚点,因此发生了这种情况。因此,您的最后一条规则始终匹配以`/ city。
开头的任何URI这样做:
RewriteRule ^city/barcelona/?$ ?what=2&type=barcelona [L,QSA]
RewriteRule ^city/newyork/?$ ?what=2&type=newyork [L,QSA]
RewriteRule ^city/paris/?$ ?what=2&type=paris [L,QSA]
RewriteRule ^city/london/?$ ?what=2&type=london [L,QSA]
RewriteRule ^city/milan/?$ ?what=2&type=milan [L,QSA]
RewriteRule ^city/?$ ?what=3 [L,QSA]