James Asked: 2009-08-18 17:41:12 +0800 CST2009-08-18 17:41:12 +0800 CST 2009-08-18 17:41:12 +0800 CST 删除尾随斜杠 Lighttpd url 772 一个奇怪的请求,但我真的需要这个回答。你们能帮我使用重写规则从 Lighttpd.conf 中的 url 中删除尾部斜杠吗? 例如: **A** www.example.com/page/ **B** www.example.com/page 我希望将 url A 强制转换为 url B 的语义。 非常感谢。 rewrite lighttpd 3 个回答 Voted sybreon 2009-10-02T18:28:03+08:002009-10-02T18:28:03+08:00 您尝试做的事情听起来不对。Web 服务器不处理浏览器看到的请求 url。这是一个应用程序问题。您的 Web 应用程序需要以 url 的形式呈现 URL,www.example.com/page而不是www.example.com/page/现在的形式。 如果您不想更改应用程序但仍想要这种所需的行为,您可能需要考虑在 lighty 前面使用过滤代理,然后过滤所有返回的链接。 lapo 2009-09-02T10:58:00+08:002009-09-02T10:58:00+08:00 不是很重要,但你可能想要产生相反的效果...... 无论如何,就 lighttpd 代码而言,这将是这样的: url.redirect = ( "/page/" => "/page" ) url.rewrite-once = ( "/page" => "/page/" ) 但是,由于“/page”没有找到文件并尝试目录“/page/”(并且重写似乎没有隐藏它),这确实会产生重定向循环。 那么你真正的问题是:是否可以告诉 lighttpd 不要重定向目录?那,不幸的是,我没有找到办法......但我没有深入搜索,事实上我更喜欢带有斜杠的URL(也是视觉上的)...... Kodiologist 2018-05-18T08:06:11+08:002018-05-18T08:06:11+08:00 假设您希望请求/foo/bar服务/foo/bar/index.html并/foo/bar/重定向到/foo/bar. 然后你可以说: url.redirect = ("^/foo/bar/$" => "/foo/bar") url.rewrite-once = ("^/foo/bar$" => "/foo/bar/index.html") 直接重写到索引文件而不是 to /foo/bar/,并用 锚定重定向正则表达式$,避免在重写后触发重定向规则。
您尝试做的事情听起来不对。Web 服务器不处理浏览器看到的请求 url。这是一个应用程序问题。您的 Web 应用程序需要以 url 的形式呈现 URL,
www.example.com/page
而不是www.example.com/page/
现在的形式。如果您不想更改应用程序但仍想要这种所需的行为,您可能需要考虑在 lighty 前面使用过滤代理,然后过滤所有返回的链接。
不是很重要,但你可能想要产生相反的效果......
无论如何,就 lighttpd 代码而言,这将是这样的:
但是,由于“/page”没有找到文件并尝试目录“/page/”(并且重写似乎没有隐藏它),这确实会产生重定向循环。
那么你真正的问题是:是否可以告诉 lighttpd 不要重定向目录?那,不幸的是,我没有找到办法......但我没有深入搜索,事实上我更喜欢带有斜杠的URL(也是视觉上的)......
假设您希望请求
/foo/bar
服务/foo/bar/index.html
并/foo/bar/
重定向到/foo/bar
. 然后你可以说:直接重写到索引文件而不是 to
/foo/bar/
,并用 锚定重定向正则表达式$
,避免在重写后触发重定向规则。