我的路线:
Get().route('/amp/@website', 'PageController@amp_info').name('amp_info'),
Get().route('/@website', 'PageController@info').name('info')
这有效:https://websiteopedia.com/www.eventsnow.com 这不是https://websiteopedia.com/https://www.eventsnow.com/
我需要做些什么?参数中的斜杠未找到匹配的路由而重定向到404
答案 0 :(得分:1)
是的,要实现此目的,您有两个选择:使用输入或创建路由编译器
您可以使网址简单地转到info
方法,而网址中没有任何特殊内容:
Get().route('/', 'PageController@info').name('info')
然后,您可以打https://websiteopedia.com/?website=https://www.eventsnow.com/
然后在info
方法中,您将像往常一样获得输入:
def info(self, request: Request):
request.input('website') #== 'https://www.eventsnow.com/'
路由编译器只是在URL中编译正则表达式的一种方法。您可以使用服务提供商中的一种引导方法来制作新的编译器。
这个新的编译器看起来像这样:
def boot(self, view: View):
view.compile('url', r'([^\s]+)')
然后您可以像这样构造路线:
Get().route('/@website:url', 'PageController@info').name('info')
现在,它将把它编译到您提供的正则表达式中,您现在可以像以前一样点击路由了。