我遇到了一个非常具体的问题。我正在使用wamp服务器在本地运行我的代码点火器项目。我已经在中加载了mod_rewrite,它显示在我的phpinfo中。
在我的wamp根目录中,我有一个codeigniter项目文件夹"mysite"。这是mysite的目录结构。
-mysite
|--images
|--eshots
|--useruploads
|--temp
|--SpryAssets
|--css
|--js
|--timthumb
在启用这个mod_rewrite之后,我修改了windows目录中的"主机"文件,并在虚拟主机文件中添加了这行代码,以便像这样访问我的网站。(mysite.local)
127.0.0.1 mysite.local
之后,我在根目录(即mysite文件夹下)中创建了一个htaccess文件
htaccess file:
RewriteEngine on
RewriteCond $1 !^(index.php|images|lists|eshots|useruploads|temp|SpryAssets|css|js|robots.txt|timthumb.php)
RewriteRule ^(.*)$ /index.php?$1 [L]
<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>
在这之后,当我试图从wamp访问我的网站时,它会把我带到任何地方。例如,如果我从localhost的项目文件夹(即mysite)单击,它会将我带回到localhost文件夹,并且我的URL如下所示:
http://mysite.local/mysite/
当我再次点击我的网站时,它会显示这样的URL:
http://mysite.local/mysite/mysite
在这之后,我的链接就不会带我去网页了。并被困在这里。为什么我从服务器得到这种行为?停止此操作的CODEIGNITER或htaccess文件是否存在任何问题?我需要做什么步骤才能让每个N都正常工作,包括javascript、css和图像。
如何处理这个具有挑战性的问题
大多数人说你需要启用mod_rewrite或阅读Apache提供的手册。
[更新]:当我尝试WID新的代码点火器项目时。首先,我将除htaccess文件外的所有文件复制到项目文件夹中。幸运的是,我能够导航到索引页面,但它没有显示任何css、图像和脚本。我的htaccess只包含以下几位:RewriteEngine on。
我现在该怎么做才能让我的js,图像像上面一样工作?Apache_error日志如下所示:。此外,当我尝试移动到下一页时,它会显示"(错误:404)找不到请求的URL/Code/wham.local/categories/listings/Products"。请建议。其中wham.local是虚拟主机。
apache_error日志:
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/css, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/css, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/js, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/js, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/js, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/js, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/js, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images, referer: http://localhost/Code/
[Sun Nov 25 13:00:54 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images
[Sun Nov 25 13:01:03 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images
[Sun Nov 25 13:01:55 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/images
[Sun Nov 25 13:01:56 2012] [error] [client 127.0.0.1] File does not exist: D:/wamp/www/Code/wham.local, referer: http://localhost/Code/
检查C:\wamp\bin\apache\Apache2.2.17\conf中的http.conf文件如果他们是这样的条目#虚拟主机#包括conf/extra/httpd-vhosts.conf然后打开文件httpd-vhosts.conf,在其中添加以下行。
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/mysite/"
ServerName mysite.local
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "C:/wamp/www/"
ServerName localhost
</VirtualHost>
否则,您也可以将此行添加到httpd.conf文件中并重新启动服务器。这就是虚拟主机的概念。
这一行似乎在搅乱你:
RewriteCond $1 !^(index.php|images|lists|eshots|useruploads|temp|SpryAssets|css|js|robots.txt|timthumb.php)
试试这个
RewriteCond %{REQUEST_URI} !^(index.php|images|lists|eshots|useruploads|temp|SpryAssets|css|js|robots.txt|timthumb.php)
您需要为apache启用重写模块。。你可以去wamp tray icon
>apache
>apache module
,然后选择rewrite module
。