16

.htaccess ファイルの内容を apache2 の vhost ファイルに移動すると、パフォーマンスが向上するかどうか疑問に思っていました。

これは私の .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 宣言のどこにコンテンツの上に置くべきですか?

ありがとう!

4

1 に答える 1

13

仮想ホスト構成ファイルを編集する可能性がある場合は、常に編集する必要があります。.htaccess はサイトに対して行われるすべてのリクエストで解釈されますが、vhost.conf は httpd の再起動/リロード時にのみ解釈されます。

Optionsディレクトリディレクティブで設定できます-例:

<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>

また、apache.orgのこのwikipostも参照してください。

于 2012-03-04T13:50:47.407 に答える