Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Web应用程序链接断开取决于最终反斜杠_Html_Url_Href - Fatal编程技术网

Html Web应用程序链接断开取决于最终反斜杠

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

如果有人问我这个问题,我很抱歉,但我找不到,也不确定我在搜索什么

我的web应用程序(托管在google app engine上)中的链接位于/search/like:

<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('/')