我第一次为我的桌面版本的网站设置了CodeIgniter,并且在将AllowOverride从None更改为All之后我遇到了一些问题,以便以下.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获取其内容。当AllowOverride为'None'时,这非常有效。现在我已将其更改为“全部”并实现了上述.htaccess文件 - 子域不再有效,我显示了“Apache服务器的测试页”html文件。
任何人都知道可能导致问题的原因是什么?!谢谢!
答案 0 :(得分:1)
为什么只有一个htaccess文件允许AllowOverride All,当你可以将它嵌入到vhost conf中并返回到AllowOverride None时,哪些东西似乎更适合你?
在旁注中,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>