在 Apache 中,.htaccess 文件是否会覆盖 mod_rewrites 的 httpd.conf?

Sha*_*ell 7 mod-rewrite .htaccess apache-2.2

在我的 Apachehttpd.conf文件中,我在VirtualHost标签中有这个声明。

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.shanestillwell.com$ [NC]
RewriteRule ^(.*)$ http://www.shanestillwell.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

而这在我的 .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)

我的规则httpd.conf似乎被忽略了。规则是在.htaccess抹去httpd.conf重写规则吗?

Pri*_*rix 1

如果你有一个<Directory ...>withAllowOverride all那么你的 .htaccess 文件中的任何内容都将替换任何以前的规则。

它可以在您的httpd.conf或您的上virtualhost,只要它指向/或指向您的域路径。