Moo*_*ooh 3 java scala playframework playframework-2.0
我想知道如何在Play框架2.0.x中为子域进行永久重定向301.例如:www.example.com/*重定向到example.com/*.以前有人试过吗?
在全局对象将允许您拦截请求.出于显而易见的原因,您应该使用GET请求(即出于搜索引擎优化目的),但其他人,如POST,PUT等应该从视图的开头正确创建.
另一方面,如果只是为生活生产服务常见HTML页面的一些应用程序考虑在它前面使用一些HTTP服务器 - 那么你可以通过一些重写规则来实现.
import play.GlobalSettings;
import play.mvc.Action;
import play.mvc.Http;
import play.mvc.Result;
import java.lang.reflect.Method;
public class Global extends GlobalSettings {
@Override
public Action onRequest(final Http.Request request, Method method) {
if ("GET".equals(request.method()) && "www.example.com".equals(request.host())) {
return new Action.Simple() {
public Result call(Http.Context ctx) throws Throwable {
return movedPermanently("http://example.com" + request.path());
}
};
}
return super.onRequest(request, method);
}
}
Run Code Online (Sandbox Code Playgroud)
在conf/routes文件中
GET / controllers.Application.index(path = "")
GET /*path controllers.Application.index(path)
Run Code Online (Sandbox Code Playgroud)
在apps/controllers/Application.scala中
object Application extends Controller {
def index(path: String) = Action {
Redirect("http://example.com/" + path, status = MOVED_PERMANENTLY)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |