Html Web应用程序链接断开取决于最终反斜杠
如果有人问我这个问题,我很抱歉,但我找不到,也不确定我在搜索什么 我的web应用程序(托管在google app engine上)中的链接位于/search/like:Html Web应用程序链接断开取决于最终反斜杠,html,url,href,Html,Url,Href,如果有人问我这个问题,我很抱歉,但我找不到,也不确定我在搜索什么 我的web应用程序(托管在google app engine上)中的链接位于/search/like: <a href="./details/">Details</a> 处理程序执行以下操作: class AddSlashHandler(Handler): def get(self): if self.request.path: red_url = self
<a href="./details/">Details</a>
处理程序执行以下操作:
class AddSlashHandler(Handler):
def get(self):
if self.request.path:
red_url = self.request.path + '/'
if self.request.query_string:
red_url += '?' + self.request.query_string
self.redirect(red_url)
else:
self.redirect('/')
您只有两个选择:
/
开头,并且始终绝对到页面的根;意思是/foo/bar
总是解析为http://www.example.com/foo/bar
相对路径不是以/
开头的,它们的规则有点复杂。基本上,相对路径附加到当前URL中的最后一个/
。如果您在/foo
,则相对URL栏
解析为/bar
。如果您使用的是/foo/
,它将改为/foo/bar
这取决于你如何正确处理。通常在服务器端框架(PHP等)中,您有一些函数可以正确地生成指向所需位置的绝对URL。为此目的调查URL路由器。既然你说你在不同的URL上使用相同的页面,我怀疑你在不同的上下文中重复使用相同的模板,这意味着某种服务器端组件,因此建立一个合理的URL处理策略应该是你的优先事项。你只有两个选择:
/
开头,并且始终绝对到页面的根;意思是/foo/bar
总是解析为http://www.example.com/foo/bar
相对路径不是以/
开头的,它们的规则有点复杂。基本上,相对路径附加到当前URL中的最后一个/
。如果您在/foo
,则相对URL栏
解析为/bar
。如果您使用的是/foo/
,它将改为/foo/bar
这取决于你如何正确处理。通常在服务器端框架(PHP等)中,您有一些函数可以正确地生成指向所需位置的绝对URL。为此目的调查URL路由器。既然你说你在不同的URL上使用相同的页面,我怀疑你在不同的上下文中重复使用相同的模板,这意味着某种服务器端组件,因此建立一个合理的URL处理策略应该是你的首要任务。非常感谢你的帮助。因此,如果用户不提供,我应该始终在服务器上添加尾随的反斜杠?您当然应该确保URL是一致的。出于几个原因,从两个URL提供相同的内容不是一个好主意。是的,简单地规范你的URL也是建立一个健全的URL处理的一部分。再次感谢你的提示。我在google app engine中使用python中的webapp2框架。我正试图找出如何自动将斜杠添加到URL(通过重定向),但我无法得到它。有什么建议吗?嗯。。。也许?最终在没有斜杠的情况下重新路由所有URL。添加了问题的解决方案,再次感谢Hanks的帮助。因此,如果用户不提供,我应该始终在服务器上添加尾随的反斜杠?您当然应该确保URL是一致的。出于几个原因,从两个URL提供相同的内容不是一个好主意。是的,简单地规范你的URL也是建立一个健全的URL处理的一部分。再次感谢你的提示。我在google app engine中使用python中的webapp2框架。我正试图找出如何自动将斜杠添加到URL(通过重定向),但我无法得到它。有什么建议吗?嗯。。。也许?最终在没有斜杠的情况下重新路由所有URL。添加了问题的解决方案,再次感谢
<a href="/search/details/">Details</a>
<a href="./details/">Details</a>
('.*[^/]$', AddSlashHandler),
class AddSlashHandler(Handler):
def get(self):
if self.request.path:
red_url = self.request.path + '/'
if self.request.query_string:
red_url += '?' + self.request.query_string
self.redirect(red_url)
else:
self.redirect('/')