apache .htaccess rewrite - 我可以将它移到httpd.conf中

use*_*192 8 apache .htaccess httpd.conf

下面是我在.htaccessapache 2.2文件中唯一的代码.

我已经读到它对性能的影响使用a .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>
Run Code Online (Sandbox Code Playgroud)

Ton*_*hen 21

.htaccess提供目录的配置,而httpd.conf提供整体配置.当然,您可以将内容.htaccess移至httpd.conf.您可以在此处找到有关.htaccess的更多信息:Apache HTTP Server教程:.htaccess文件

以你的.htaccess为例:

/ www/htdocs/example中.htaccess文件的内容

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-l
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

来自httpd.conf文件的部分

<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>
Run Code Online (Sandbox Code Playgroud)

  • 是的,一点没错.从上面的网站引用:_如果你有权访问httpd主服务器配置文件,你应该完全避免使用.htaccess文件.使用.htaccess文件会降低Apache http服务器的速度.您可以包含在.htaccess文件中的任何指令都可以在目录块中更好地设置,因为它具有相同的效果和更好的性能. (5认同)