Google App Engine - Python实现裸域重定向路径

4
我正在开发一个名为colorurl.com的网站,需要让用户能够输入colorurl.com/00ff00之类的网址来查看正确的页面。然而,由于“裸域”问题,当用户输入colorurl.com/somepath时,会被重定向到www.colorurl.com/。
在Python中,是否有一种方法可以检测这个问题,然后将用户重定向到他们想去的地方(加上www)?
编辑: 澄清:在我的Web主机配置中,我已经将colorurl.com转发到www.colorurl.com。他们不支持保留路径(1and1)。我必须检测以前的路径并将用户重定向到它。
1. 用户进入colorurl.com/path 2. 用户被重定向到www.colorurl.com 3. 应用程序需要检测路径是什么。 4. 应用程序将用户发送到www.colorurl.com/path

你需要找一个不会在重定向方面做得如此糟糕的主机。许多 DNS 主机,例如 zoneedit 或 dyndns,提供类似的服务。 - Nick Johnson
顺便提一下,GAE现在支持裸域名了,请参见https://dev59.com/oHRA5IYBdhLWcg3wzhXZ - Dan Cornilescu
2个回答

4

在这种情况下,我会在您的裸域名上设置一个小网站,只包含一个.htaccess文件,将路径重定向到www.*:

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^colorurl.com [NC] 
RewriteRule ^(.*)$ http://www.colorurl.com/$1 [L,R=301]

哇...太完美了。我一直在考虑mod_rewrite,希望它能在App Engine上使用。我没有想到这种解决方案。 - Joshua Patton

0

您需要使用第三方网站来将重定向到www.*;许多注册机构都提供此服务。Godaddy的服务(甚至在域名注册时是免费的)将foo.com/bar转发到www.foo.com/bar;我无法保证其他注册机构的功能,但在我看来,任何一个不遵守这种方式的都是有问题的。


我的网络主机1and1不支持这个。 - Joshua Patton
colorurl.com是在1and1上运行的Python网站,而www.colorurl.com则是在App Engine上运行的网站。如果是这样的话,在colorurl.com上所需做的就是提供一个重定向到完全相同的URL,并在正确的位置添加'www'前缀。您没有说明在此其他网站上使用的框架,因此很难具体说明语法。 - Wooble
没有其他网站。Google App Engine不允许裸域名。 "其他网站"只是一个愚蠢的HTML服务器(由于接受的答案,以前只是在DNS设置中映射到重定向,但路径数据将丢失)。 - Joshua Patton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接