我现在需要做一个URL重写的工作。
我不知道我是否应该把代码放到.htaccess或httpd.conf中?
编辑
.htaccess的影响范围是什么?它会影响所有请求还是只影响它所在的特定目录?
如果你不需要经常更改你的规则,你应该把它们放在httpd.conf中,并关闭你的规则适用的顶层目录中的覆盖
AllowOverride None
没有重写,你的apache将不会扫描每个目录.htaccess文件使每个请求少开销。
每当你必须改变你的规则,你必须重新启动你的Apache服务器,如果你把它放在你的httpd.conf中,而不是立即在.htaccess文件中检测到,因为它会在每个请求中读取它们。
您可以轻松地使用apachectl工具进行平稳的重新启动,以避免切断正在服务的当前请求。
apachectl graceful
如果您不打算关闭覆盖,那么只需使用.htaccess即可。
编辑回应您的编辑:
假设您有对www.example.com/dir1/dir2/dir3/file的请求
Apache将在这三个目录中查找一个.htaccess文件,并在规则覆盖允许的情况下将规则应用于该请求。
易于使用和国际海事组织可维护性(只是去你想要的任何权限的用户目录)= .htaccess
但是这是解析一次在httpd.conf
解析一次你的超高音量将是最好的设置。
这里有三个问题“更好”:
.htaccess速度较慢,难以管理,可能不太安全。 如果你有权访问httpd.conf,那么在那里放置规则可以更容易管理(在一个地方),更快(“AllowOverrides None”意味着服务器不会查看当前目录以及覆盖文件的任何父目录解析和关注),因为.htaccess文件不在网站目录中,所以不能被编辑(如果创建,将被忽略)。
你可以使用他们两个。 恕我直言,.htaccess会好一点