在这个问题上,我是一个完全的菜鸟,我想知道在我放置代码时是否必须这样做:
有什么利弊?
答案 0 :(得分:3)
我倾向于选择.htaccess
因为它更容易作为项目文件的一部分进行维护,不需要使Web服务器生效,并且通常比脚本级重写更快
答案 1 :(得分:2)
这取决于你想要做什么。
重写规则应该放在与目录/站点根目录相关的配置中,这通常是您的vhost配置或htaccess(取决于设置)。
如果您的重定向基于额外信息,例如将404与最近移动的网页的数据库匹配,或者将404-URI与某种搜索相匹配,则通过脚本执行此操作才有意义。
答案 2 :(得分:1)
好的,所以我把关于它的内容总结一下:
重定向的网址重写:
最好把它放在Apache配置中。使用.htaccess是最灵活的方式,但是你的Apache conf必须允许它,否则,在Vhost文件中设置重写。
资源管理的网址重写:
当关于管理未找到内容,访问权限或获取用于访问动态内容的干净URL时,您需要在应用程序的脚本文件中设置重写,因为您可以访问API以处理此类事物
所以这两种方式都是互补的,你通常会同时使用它们。
答案 3 :(得分:1)
我个人更喜欢在virtualhost配置文件中拥有每个配置选项,但只有拥有root访问权限才有用。
答案 4 :(得分:0)
这取决于你是否还需要进行出站URL重写(在实际HTML页面中修改链接本身),在这种情况下,像MOD_REWRITE这样的工具不会为你做到这一点,你需要使用“内部”或“本机服务器端”工具,对于Java,您可以使用PrettyFaces或Rewrite之类的内容。
这些工具也可以执行相同类型的入站重写(例如将重定向发送到新页面,或转发到新的内部资源,以便用户不知道他们看到地址/ URL更改。
然而,我的一般经验法则是,如果在应用程序运行时需要提供URL重写规则,则应使用类似MOD_REWRITE的内容,但如果规则仅适用于该应用程序本身,那么它们属于在应用程序内部,您应该使用本机工具。