我在Windows中有以下虚拟主机配置:
NameVirtualHost *
<VirtualHost *>
DocumentRoot "C:\xampp\htdocs"
ServerName localhost
</VirtualHost>
<VirtualHost *>
DocumentRoot "C:\xampp\htdocs\example"
ServerName example.com
<Directory "C:\xampp\htdocs\example">
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
我在example
的{{1}}文件夹中有资源文件夹。
问题是,当我打开htdocs(xampp)
时,它会查看没有资源的页面(抛出example.com/home
)。
我该怎么办?
答案 0 :(得分:0)
我以前遇到过这个问题。基本上,codeigniter控制所有路径。您需要设置.htaccess文件,该文件允许某些路径避免使用codeigniter,例如css,javascript,images等。
这样的事情应该会有所帮助:
DirectoryIndex index.php index.html index.htm
RewriteEngine on
RewriteCond $1 !^(index\.php|images|img|css|js|style|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ index.php/$1 [L]
(您可能需要也可能不需要更改最后一行;“index.php / $ 1”可能需要为“/index.php/$1”,具体取决于您的服务器设置。)
答案 1 :(得分:0)
以下是我用于Apache 2.4的配置的变体 - 可能需要一些语法更改才能适用于2.2,但重写规则应该没问题。
RewriteEngine On
RewriteBase /
# codeigniter urls
RewriteRule ^(welcome(/index)?|index(\.php)?)/?$ / [L,R=301]
RewriteRule ^(.*)/index/?$ $1 [L,R=301]
# remove trailing slashes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# application routing
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
“应用程序路由”部分告诉Apache仅在路径不存在为文件或目录时才将请求路由到PHP。