一个大的.htaccess文件是否会降低您的网站性能?我不只是在讨论301重定向,我的.htaccess文件中有很多重写规则:
ErrorDocument 404 /404.php
Options -Indexes
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ /$1 [R=301]
# If request ends in . or .php, redirect to 404
RewriteCond %{THE_REQUEST} [a-z]\.(php)?\sHTTP
RewriteRule !404|checkout - [R=404]
# Removes need for .php extention
RewriteCond %{THE_REQUEST} !/checkout/success
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ ./$1.php
# Prevents 500 internal error for e.g. /index/fakepage
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteRule ^(.*)$ - [R=404]
# When user is at /checkout/success
RewriteRule ^checkout/success$ /checkout.php?success
# Force SSL on all pages
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
# Automatically includes bootstrap.php
php_value auto_prepend_file "/home/user/public_html/bootstrap.php"
如果有可能,任何人都可以提出一种更有效的方式来做我目前正在做的事情吗?
答案 0 :(得分:0)
大型.htaccess会降低您的网站效果。空的.htaccess会降低您的网站性能(如果使用的话)。唯一不会降低网站性能的方法是通过在目录配置中设置AllowOverride None
来读取.htaccess。可以在.htaccess中完成的所有操作都可以在网络服务器的主要配置中完成。
答案 1 :(得分:0)
虽然任何.htaccess文件都会减慢速度,但在这种情况下花费的额外时间几乎可以忽略不计。
在我的头脑中,我可以想到一种提高性能的方法。 将L flag添加到每个rewriteRule。
示例:
RewriteRule ^(.*)$ - [R=404,L]
L标志就像编程语言中的break
语句。但是,您必须要小心,因为在匹配一个规则后不再处理其他规则。