我的客户决定有一个页面,/nfm&t
所以我创建了一个以 index.html 命名的目录nfm&t
(用于测试),并且该 URL 仍然抛出 404。所以显然这并不容易。
有任何想法吗?或者有没有办法只重定向nfm&t
到nfmt
,以便至少解析 URL?
顺便说一句,这是一个 Windows 服务器,它对我习惯于重定向的方式产生了影响。
我的客户决定有一个页面,/nfm&t
所以我创建了一个以 index.html 命名的目录nfm&t
(用于测试),并且该 URL 仍然抛出 404。所以显然这并不容易。
有任何想法吗?或者有没有办法只重定向nfm&t
到nfmt
,以便至少解析 URL?
顺便说一句,这是一个 Windows 服务器,它对我习惯于重定向的方式产生了影响。
为什么 Windows Server 会影响您如何进行重定向?如果您使用的是 IIS 7,则可以使用URL Rewrite Module。它内置在 IIS 中。如果您使用的是 IIS 6,则有ISAPI Rewrite,它是一个外部模块。两者都使用与 Apache 的 mod_rewrite 相同的语法。
你有 /nfm 目录吗?如果没有,请尝试制作一个。无论哪种方式,放入一个 Default.aspx 文件并让它向您吐出它试图访问的确切路径。很有可能,当你在这里拥有它时,它会去example.com/nfm/Default.aspx
并让你从那里运行一些东西。
如果您确实到达了该目录,请尝试重定向到example.com/nfm%26t
并查看它是否有效。如果这仍然没有帮助,那么你就是 SOL
我在我的带有 Apache 的 Snow Leopard (OSX 10.6.2) 工作站上尝试了这个,它可以工作。那是从 Firefox 3.6 开始的。看起来像你正在努力解决的 Windows 问题。老实说,我不认为没有编码就可以工作,但在你尝试之前你永远不会知道。
打开AllowRestrictedChars并启用VersionCompatibility应该可以做到。
或者有没有办法将 nfm&t 重定向到 nfmt,以便至少解析 URL?
当然。制作一个通用的 url 处理程序和/或错误处理程序。当它遇到一个 url 时,如果该 url 等于/nfm&t
,那么在后台将上下文重写为您真正想要返回的任何页面。这是一个好主意吗?可能不是。但它会起作用。基思的回答提出了两种获取 url 并执行操作的方法,但如果您使用的是 .Net,您也可以通过全局 asax 文件执行此操作(当您遇到错误时要小心执行 aspx 页面,以便它实际被命中) .