2012-11-23 156 views
0

我有一個非常具體的問題。我正在使用wamp服務器在本地運行我的codeigniter項目。我已經加載了mod_rewrite,它顯示在我的phpinfo中。Mod_rewite和URL重定向 - APACHE,Mod_rewrite,PHP,Codeigniter

在我的wamp根目錄下,我有一個codeigniter項目文件夾「mysite」。這裏是mysite的目錄結構。

-mysite 
    |--images 
    |--eshots 
    |--useruploads 
    |--temp 
    |--SpryAssets 
    |--css 
    |--js 
    |--timthumb 

啓用這個了mod_rewrite之後,我修改了「主機」的文件在我的windows目錄下,並在我的虛擬主機文件中添加這行代碼來訪問我的網站,像這樣的。 (mysite.local)

127.0.0.1 mysite.local 

這之後我創建了根目錄中的htaccess文件(即下的mysite文件夾)

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訪問我的網站,它導致我無處可去。例如,如果我從本地主機的項目文件夾即mysite的點擊,它把我帶回到本地主機文件夾,我的URL看起來像這樣:

http://mysite.local/mysite/

,當我再次點擊mysite的,它顯示的URL像這樣的:

http://mysite.local/mysite/mysite

並在此之後,我的鏈接不走我的網頁。並留在這裏。 爲什麼我從服務器獲取此行爲? CODEIGNITER或htaccess文件是否存在阻止此問題?我需要採取哪些步驟以便讓每個N個工作都能正常工作,包括javascript,css,images。

KINDLY建議我處理這個挑戰性的問題!沒有人可以幫助我。 大多數人都說你需要啓用你的mod_rewrite或者從Apache提供的手冊。當我TRIED WID new codeigniter project.FIRST時,我將除htaccess文件之外的所有文件複製到項目文件夾中。幸運的是,我能夠導航到索引頁面,但它沒有顯示任何css,圖像,腳本。 我的htaccess只包含這些位:RewriteEngine on。如果我嘗試移動到下一頁,它會顯示「(錯誤:404)請求的URL /代碼/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/ 
+0

我認爲,因爲您可以點擊任何更新您的虛擬主機文件。愚蠢的問題,但你如何構建你的鏈接? href =「mysite」vs href =「/ mysite」vs href =「<?php echo site_url('mysite')」等 –

+0

對不起,我有一個迴應,但我意識到它忽略了你說的話。爲了回答你關於我的CI安裝和設置的問題,我沒有做任何特別的事情。我把CI放在direcory中,將IP本地主機添加到主機文件,更新了像mohan所說的httpd-hosts文件,重新啓動了wampp並且它正在工作。 –

+0

@KaiQing我的圖片,css和js不工作。另外,我還包含了apache_error日誌。請你看看它,並建議爲什麼url沒有以適當的方式格式化??我會很感激,如果你可以做所以感謝 –

回答

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) 
+0

我認爲他的htaccess是默認的CI。這與我在本地使用的幾乎完全相同 –

+0

@Joshua Kaiser我嘗試了你上面提示我的方式。但問題仍然存在。是否有上面步驟中缺少的任何東西?我的意思是這是與apache httpd.config文件有關的事情和創建虛擬主機 - 對不起,我沒有得到任何線索發生錯誤的地方。 –

+0

@KaiQing我正在Codeigniter這樣構建url:http://mysite.local/contactus,http://mysite.local/aboutus,http://mysite.local/section/edit/1等。我將不勝感激如果你能告訴我你已經做了哪些步驟來使你的代碼點燃器項目在你的本地主機上工作? –

2

檢查http.conf文件中C:\ WAMP \ BIN \ apache的\ APACHE2.2。17 \ conf 如果它們是這樣的條目 #虛擬主機 #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文件也 並重新啓動服務器烏爾。 這是虛擬主機的概念。

0

您需要啓用的Apache重寫模塊..你可以去 wamp tray icon>apache>apache module然後選擇rewrite module做到這一點。