初学者.htaccess问题(代码点火器相关)


Beginner .htaccess question (codeigniter related)

我第一次为我的桌面版网站设置了 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>