Переместить содержимое .htaccess в vhost, для производительности

Мне было интересно, если производительность может быть увеличена, если я переведу содержимое файла .htaccess в файл vhost apache2?

Это содержимое моего .htaccess

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{SERVER_NAME} ^([^.]+\.[^.]+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Если это хорошая идея, где в объявлении vhost я должен размещать над содержимым?

Спасибо!

+16
источник поделиться
1 ответ

Если у вас есть возможность редактировать vhost-конфигурационные файлы, вы всегда должны это делать..htaccess интерпретируется с каждым запросом, который делается на вашем сайте, а с другой стороны, vhost.conf интерпретируется только на httpd restart/reload.

Вы можете установить Options в директиве Directory - например:

<Directory /usr/local/apache2/htdocs/somedir>
Options +FollowSymLinks +ExecCGI
</Directory>

<VirtualHost [...]>
[...]
RewriteEngine On

RewriteCond %{SERVER_NAME} ^([^.]+\.[^.]+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

# we check if the .html version is here (caching)
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f

# no, so we redirect to our front web controller
RewriteRule ^(.*)$ index.php [QSA,L]
</VirtualHost>

Также посмотрите на wikipost на apache.org - особенно раздел" Когда мне это нужно, и не следует ли использовать файлы .htaccess?

+10
источник

Посмотрите другие вопросы по меткам или Задайте вопрос