我第一次为我的桌面版网站设置了 CodeIgniter,在将 AllowOverride 从"无"更改为"全部"后遇到了一些问题,以便以下 .htaccess 规则起作用:
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index'.php|images|css|js|m|robots'.txt|favicon'.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L,QSA]
问题是,我有一个位于 m.domain.com 的网站的移动版本 - 它从 domain.com/m 中提取其内容。 当允许覆盖为"无"时,这非常有效。 现在我已将其更改为"全部"并实现了上面的 .htaccess 文件 - 子域不再有效,并且我显示了一个"Apache 服务器的测试页面"html 文件。
任何人都知道可能导致问题的原因吗?! 谢谢!
当您可以将一个 htaccess 文件嵌入到 vhost conf 中并返回到 AllowOverride None 时,为什么只对一个 htaccess 文件进行全部覆盖,那里的事情似乎更适合您?
附带说明一下,AllowOverride All是您通常不尝试做的事情。
例:
<VirtualHost *:80>
ServerAlias yourdomain.com
DocumentRoot /var/www/
<Directory "/var/www/folder">
RewriteEngine On
RewriteRule XXXXXX
</Directory>
<Directory "/var/www/another">
RewriteEngine On
RewriteRule XXXXXX
</Directory>
</VirtualHost>