0

我有一个非常具体的问题。我正在使用 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 如下所示:

http://mysite.local/mysite/

当我再次单击 mysite 时,它​​会显示如下 URL:

http://mysite.local/mysite/mysite

在此之后,我的链接不会将我带到网页。并停留在这里。为什么我从服务器得到这种行为?停止此操作的 CODEIGNITER 或 htaccess 文件是否有任何问题?以及我需要执行哪些步骤才能使每个 N 都正常工作,包括 javascript、css、images 。

如何应对这个具有挑战性的问题?
大多数人说您需要启用 mod_rewrite 或阅读 Apache 提供的手册。

[更新]:当我尝试 WID 新的 codeigniter 项目时。首先,我将除 htaccess 文件之外的所有文件复制到项目文件夹中。幸运的是,我能够导航到索引页面,但它没有显示任何 css、图像、脚本。我的 htaccess 仅包含以下位: RewriteEngine on .

我现在应该怎么做才能使我的 js、图像像上面那样工作?Apache_error 日志看起来像这样:。此外,当我尝试进入下一页时,它会显示“(错误:404)请求的 URL /Code/wham.local /categories/listings/Products was not found”。请建议。其中 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/
4

3 回答 3

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 文件并重新启动您的服务器。这是虚拟主机的概念。

于 2012-11-24T18:33:14.767 回答
0

您需要为 apache 启用重写模块。您可以通过转到 wamp tray icon> apache>apache module然后选择来执行此操作rewrite module

于 2013-12-11T21:08:40.537 回答
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)
于 2012-11-24T00:20:28.033 回答