Url rewriting 你认为把URL重写放在哪里最好?

Url rewriting 你认为把URL重写放在哪里最好?,url-rewriting,Url Rewriting,在这个问题上,我是一个彻头彻尾的傻瓜,我想知道我是否必须这样做,我把代码放在哪里: 在虚拟主机/apache conf文件中 在httaccess文件中 将所有URL重定向到单个入口点,并使用脚本语言对其进行解析 利与弊是什么?这取决于你到底想做什么 重写规则应该放在与目录/站点根目录相关的配置中,该目录/站点根目录通常是vhost配置或htaccess(取决于设置) 通过脚本执行此操作只有在重定向基于额外信息时才有意义,例如将404与最近移动页面的数据库相匹配,或将404-URI与某种搜索

在这个问题上,我是一个彻头彻尾的傻瓜,我想知道我是否必须这样做,我把代码放在哪里:

  • 在虚拟主机/apache conf文件中
  • 在httaccess文件中
  • 将所有URL重定向到单个入口点,并使用脚本语言对其进行解析

利与弊是什么?

这取决于你到底想做什么

重写规则应该放在与目录/站点根目录相关的配置中,该目录/站点根目录通常是vhost配置或htaccess(取决于设置)


通过脚本执行此操作只有在重定向基于额外信息时才有意义,例如将404与最近移动页面的数据库相匹配,或将404-URI与某种搜索相匹配。

我倾向于使用
.htaccess
,因为它更容易作为项目文件的一部分进行维护,无需启动web服务器即可生效,通常比脚本级别的重写速度更快。

好的,因此我对所读内容进行了总结:

重定向的URL重写:

最好将其放在Apache配置中。使用.htaccess是最灵活的方法,但是您的Apache配置必须允许,如果不允许,请在Vhost文件中设置重写

ressource管理的URL重写:

当涉及到管理未找到的内容、访问权限或获取用于访问动态内容的干净URL时,您需要在应用程序的脚本文件中设置重写,因为您可以访问API来处理此类事情


因此,这两种方法都是互补的,您通常会同时使用这两种方法。

.htaccess目录中的文件应该是最好的位置,如果您没有任何速度优化问题的话。如果您的站点托管在shared webhotel上,或者您的web应用程序可以自己创建htaccess文件,那么这也是一种方法


就我个人而言,我更喜欢在virtualhost配置文件中包含所有配置选项,但这只有在您具有根访问权限时才有好处。

这取决于您是否还需要进行出站URL重写(修改实际HTML页面中的链接本身),在这种情况下,类似MOD_REWRITE的工具不会为您带来好处,您需要使用“内部”或“本机服务器端”工具,在Java的情况下,您可以使用,或

这些工具还可以执行相同类型的入站重写(如向新页面发送重定向,或转发到新的内部资源,以便用户不知道他们正在看到地址/URL更改)

然而,我的一般经验法则是,如果应用程序运行时需要使用URL重写规则,则应该使用类似MOD_rewrite的东西,但如果规则仅适用于该应用程序本身,则它们属于应用程序内部,并且应该使用本机工具