我有一个非常具体的问题。我正在使用wamp服务器在本地运行我的codeigniter项目。我已经加载了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如下所示:
当我再次点击mysite时,它会显示如下的URL:
http://mysite.local/mysite/mysite
在此之后,我的链接不会将我带到网页。并坚持到这里。 为什么我从服务器获取此行为? CODEIGNITER或htaccess文件是否有问题阻止了这个?我需要采取哪些步骤才能让每个N工作正常,包括javascript,css,images。
如何应对这一具有挑战性的问题?
大多数人说你需要启用mod_rewrite启用或阅读Apache提供的手册。
[增订]: 当我尝试WID新的codeigniter project.FIRST时,我将除htaccess文件之外的所有文件复制到项目文件夹中。幸运的是,我能够导航到索引页面,但它没有显示任何css,图像,脚本。 我的htaccess只包含这些位:RewriteEngine on。
我现在要做什么才能使我的js,图像按上述方式工作?Apache_error日志如下所示:。另外,当我尝试移动到下一页时,它会说“(错误:404)请求的URL /代码/ wham.local / categories / listings /找不到产品“。诚然建议.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/
答案 0 :(得分:2)
检查C:\ wamp \ bin \ apache \ Apache2.2.17 \ conf中的http.conf文件 如果他们是这样的条目 #Virtual hosts #Include 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文件中 并重启你的服务器。 这是虚拟主机概念。
答案 1 :(得分:0)
看起来这条线正在弄乱你:
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)
答案 2 :(得分:0)
你需要为apache启用重写模块..你可以通过去做
wamp tray icon
&gt; apache
&gt; apache module
然后选择rewrite module
。