апаш.htaccess rewrite-могу ли я переместить это в httpd.конф
Ниже приведен единственный код, который у меня есть в файле .htaccess
с apache 2.2.
Я читал, что его влияние на производительность использовать .htacess
и лучше, если это это может быть исчерпано httpd.conf
. Поэтому возможно ли мне добавить это в httpd.conf
? Если да, то куда мне его девать?
Должен ли он идти в VirtualHost для каждого хоста, которому он нужен (в моем случае много хостов), или он может идти в общем виде в httpd.conf так это относится ко всем хостам?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
3 ответа:
.htaccess
предоставляет конфигурацию для каталога, в то время как httpd.conf предоставляет общую конфигурацию. Конечно, вы можете переместить содержимое из.htaccess
вhttpd.conf
. Вы можете найти более подробную информацию .htaccess здесь: Apache HTTP Server Tutorial:.htaccess файлыВозьмите свой .htaccess например:
Содержание .файл htaccess в файле /www / htdocs / example
<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule>
Раздел из вашего httpd.conf file
<Directory /www/htdocs/example> <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)$ index.php?/$1 [L] </IfModule> </Directory>
Каждому виртуальному хосту требуются свои собственные правила перезаписи, если только:
- вы указываете
RewriteOptions inherit
в каждом виртуальном хосте или- вы используете Директиву
include
в каждом виртуальном хостеИсточник: https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#RewriteEngine
Обратите внимание, что конфигурации перезаписи не наследуются виртуальными хостами
В соответствии с Apache docs вы можете поместить конфигурацию в a .htaccess в пределах
<Directory>
-блока. http://httpd.apache.org/docs/2.2/howto/htaccess.htmlВы должны избегать использования .htaccess файлы полностью, если у вас есть доступ к файлу конфигурации основного сервера httpd. С помощью.файлы htaccess замедляют работу вашего http-сервера Apache. Любая директива, которую вы можете включить в a .файл htaccess лучше установить в блоке каталогов, так как он будет иметь тот же эффект с лучшим спектакль.
Чтобы облегчить администрирование, я бы поместил директивы перезаписи в отдельный файл, который затем включается в каждый виртуальный хост. Это должно сработать.