Apache-2.2
在htaccess中放置什麼順序規則重要嗎?
我希望這是一個簡單的“是”或“否”答案(請說明原因)
Q1:規則在 htaccess 中的放置順序是否重要? 因為它們是完全分離的項目:例如
Q2:如果是,我申請的順序是否正確? 為了加速 htacces 引擎而不是用不必要的規則使其超載?
Q3:任何關於在這裡禁用/添加什麼的提示都非常歡迎+1!
# DirectoryIndex index.php /index.php AddDefaultCharset UTF-8 RewriteEngine on # Options All # Options +FollowSymLinks # Options +FollowSymLinks -Indexes -ExecCGI # RewriteBase / ##################################################### <IfModule mod_headers.c> ExpiresActive On ExpiresDefault M172800 Header unset ETag FileETag None Header unset Pragma ##### STATIC FILES <FilesMatch "\\.(ico|jpg|png|gif|svg|swf|css|js|fon|ttf|eot|xml|pdf|flv)$"> ExpiresDefault M1209600 Header set Cache-Control "public, max-age=1209600" </FilesMatch> ##### DYNAMIC PAGES <FilesMatch "\\.(php)$"> ExpiresDefault M604800 Header set Cache-Control "public, max-age=604800" </FilesMatch> </IfModule> ##################################################### # /page123 and /page123/ will all go to /page123.php RewriteRule ^(.+)/$ /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.php -f RewriteRule ^(.*)$ $1.php #################################################### # NO WWW http://www. becomes always http:// RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^(.*)$ http://%1/$1 [R=301,L] ############################################################## # add own extensions that will be interpreted as php AddType application/x-httpd-php .php AddType image/svg+xml svg svgz AddType text/css css AddType text/javascript js AddEncoding gzip svgz ############################################################## ErrorDocument 500 / ErrorDocument 404 /
嗯,.htaccess 文件使用與正常 Apache 配置文件相同的格式,因此適用相同的規則。
大多數配置設置不依賴於順序,但有些依賴 - 取決於設置。
RewriteRule
並且RewriteCond
例如對訂單敏感,所以在這種情況下答案是肯定的。參見例如
http://wiki.apache.org/httpd/RewriteRule
有關評估這些順序的說明。
這很重要。引用RewriteRule 的文件:
定義這些規則的順序很重要——這是它們在執行時應用的順序。