2013-12-11 28 views
0

我在窗户下面的虚拟主机配置:笨没有找到资产(CSS | JS |图片)

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文件夹内的资产文件夹中htdocs(xampp)。 问题是当我打开example.com/home它查看没有资产的页面(抛出404 Error)。

我该怎么办?

回答

0

我以前有过这个问题。基本上,codeigniter控制所有路径。你需要建立一个.htaccess文件,允许一定的路径,以避免笨如CSS,JavaScript,图片等

像这样的东西应该有所帮助:

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”,具体取决于您的服务器设置。)

+0

我有一个.htaccess它省略了index.php文件。\ – Ramin

+0

更多相同的这个线程:[link](http://stackoverflow.com/questions/3401911/codeigniter-isnt-routing-right? RQ = 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只有在通路中不存在的文件或目录。