- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我计划调整我网站的 URL 以获得更好的 SEO 和服务器性能是我非常关心的一个问题。
我不想用许多 301 重定向使 .htaccess 文件过载。
在 httpd.conf 而不是 .htaccess 中这样做更好吗?
.htaccess 文件在每个 html 请求中被读取,然而,httpd.conf 文件在启动 apache 时只加载一次。那是对的吗?
如果是这样,它会不会只改进一次服务器性能负载重定向规则?
最佳答案
htaccess 文件会被缓存,除非它被修改(在某种程度上取决于主机操作系统和文件系统),所以它不会为每个请求加载。但是,apache 文档说,与在 htaccess 文件中包含指令相比,服务器/虚拟主机配置中的指令通常更快。
见:http://httpd.apache.org/docs/current/howto/htaccess.html
In general, you should only use .htaccess files when you don't have access to the main server configuration file. There is, for example, a common misconception that user authentication should always be done in .htaccess files, and, in more recent years, another misconception that mod_rewrite directives must go in .htaccess files. This is simply not the case. You can put user authentication configurations in the main server configuration, and this is, in fact, the preferred way to do things. Likewise, mod_rewrite directives work better, in many respects, in the main server configuration.
.htaccess files should be used in a case where the content providers need to make configuration changes to the server on a per-directory basis, but do not have root access on the server system. In the event that the server administrator is not willing to make frequent configuration changes, it might be desirable to permit individual users to make these changes in .htaccess files for themselves. This is particularly true, for example, in cases where ISPs are hosting multiple user sites on a single machine, and want their users to be able to alter their configuration.
However, in general, use of .htaccess files should be avoided when possible. Any configuration that you would consider putting in a .htaccess file, can just as effectively be made in a section in your main server configuration file.
There are two main reasons to avoid the use of .htaccess files.
The first of these is performance. When AllowOverride is set to allow the use of .htaccess files, httpd will look in every directory for .htaccess files. Thus, permitting .htaccess files causes a performance hit, whether or not you actually even use them! Also, the .htaccess file is loaded every time a document is requested.
Further note that httpd must look for .htaccess files in all higher-level directories, in order to have a full complement of directives that it must apply. (See section on how directives are applied.) Thus, if a file is requested out of a directory /www/htdocs/example, httpd must look for the following files:
/.htaccess
/www/.htaccess
/www/htdocs/.htaccess
/www/htdocs/example/.htaccessAnd so, for each file access out of that directory, there are 4 additional file-system accesses, even if none of those files are present. (Note that this would only be the case if .htaccess files were enabled for /, which is not usually the case.)
In the case of RewriteRule directives, in .htaccess context these regular expressions must be re-compiled with every request to the directory, whereas in main server configuration context they are compiled once and cached. Additionally, the rules themselves are more complicated, as one must work around the restrictions that come with per-directory context and mod_rewrite. Consult the Rewrite Guide for more detail on this subject.
The second consideration is one of security. You are permitting users to modify server configuration, which may result in changes over which you have no control. Carefully consider whether you want to give your users this privilege. Note also that giving users less privileges than they need will lead to additional technical support requests. Make sure you clearly tell your users what level of privileges you have given them. Specifying exactly what you have set AllowOverride to, and pointing them to the relevant documentation, will save yourself a lot of confusion later.
关于performance - 301 重定向 Apache : It is better to do it in httpd. conf 或 .htaccess?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26733207/
我在play官方网站上关注了“Learn”。我使用的是window 7+Chrome。 D:\tester\play>dir Volume in drive D is APPLIS Volum
我有一个 play 1.2.5 应用程序,想将它部署到某个地方(这样我就可以为一些 OAuth 回调注册它)。我正在尝试将其推送到 heroku,但出现以下错误 -----> Play! app de
周围有两个配置文件,/etc/nginx/conf.d/default.conf和 /etc/nginx/nginx.conf,但是启用了哪一个呢?我运行的是 CentOS6.4 和 nginx/1.
我已经在Flume 1.6.0-cdh5.4.2(CentOS)中安装了cloudera VM 我认为配置和一切都很好 我运行了以下命令槽 flume-ng --conf /conf agent -
为了避免对我本地托管的 apache-tomcat Web 服务器上托管的 Web 应用程序进行点击劫持攻击,我正在尝试编辑“httpd.conf”文件以向其附加 X 选项。 用“sudo nano/
当我想为 intel Galileo 构建一个 yocto 镜像时,我按照网站中提到的这些说明进行操作 https://software.intel.com/en-us/blogs/2015/03/0
如果我有一个名为 mysite.conf 的文件存储在 /etc/nginx/conf.d .有没有办法获取字符串值'mysite'从conf文件中? 我想多次符号链接(symbolic link)一
为大学生编写一个应用程序——显示一个系列表,你点击一个,然后它会显示该系的类(class),点击一个,然后显示教授该类(class)的教授。 URL conf 有问题——我的应用程序不断将我重定向到错
当试图启动 apache 时 sudo /etc/init.d/apache2 restart 我得到了错误 apache2: Syntax error on line 260 of /etc/apa
我关注 this tutorial我找不到本教程第二步的 phpmyadmin.conf。我在/etc/apache2/conf-available/中只有以下文件 charset.conf othe
httpd.conf(/etc/httpd/conf/httpd.conf) 和 ssl.conf(/etc/httpd/conf.d/ssl.conf) 有什么区别 文件? 我正在尝试在我的站点上设
所有配置都被包含在内,并且 conf 测试也通过了。但是 Nginx 仍然提供来自 /usr/share/nginx/html 的默认 HTML。 , 而不是 conf.d 目录中 conf 文件的位
我是 psql 的新手,我遇到了一些我认为是错误放置的 .conf 文件引起的问题。当我尝试登录我之前创建的数据库时出现错误 $ psql corporation psql: could not co
我在 /etc/httpd/conf.d/vhost.conf 中的虚拟主机配置如下所示: NameVirtualHost * ServerName www.example.com
我遵循了教程:http://www.webopius.com/content/355/getting-mamp-working-with-ssl-on-os-x获取 ssl 证书。但是,我无法在 st
是否有一个 spark 属性,我们可以在执行 spark 提交时设置它指定 hadoop 配置路径,专门指向自定义 hdfs-site.xml 和 core-site.xml 文件 最佳答案 首选的方
在NameNode和JobTracker不是同一台服务器的hadoop集群(1.x版本)中,conf/masters和conf/slaves是需要在NameNode和JobTracker上同时指定还是
我从 Here 下载 Redis-x64-3.2.100.zip ,当我提取它时,我看到两个文件 redis.windows.conf 和 redis.windows-service.conf,我比较
我目前正在检查我们的 JBoss AS7.1 服务器配置,我在我们的 jboss/standalone/bin 目录中发现了这两个以前配置的文件: standalone.conf standalone
我一直在使用这个教程http://mpjexpress.blogspot.co.nz/2010/05/executing-and-debugging-mpj-express.html 、文本:步骤 1
我是一名优秀的程序员,十分优秀!