2013-05-27 66 views
4

我與Yii框架的Apache/2.2.15(CentOS的)服務器上工作。如何從Apache/Centos中的Yii URL中刪除index.php?


下面一行取消註釋在/etc/httpd/conf/httpd.conf中

LoadModule rewrite_module modules/mod_rewrite.so 


我可以看到下加載的模塊mod_rewrite的當我做foll由於

<?php phpinfo(); ?>


Yii的項目結構:

/var/www/test/ 
/var/www/test/index.php 
/var/www/test/.htaccess 


的.htaccess內容

RewriteEngine on 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 


它正常工作,當我做:

http://10.20.30.40/test/index.php/testcontroller/testaction 


但是當我做:

http://10.20.30.40/test/testcontroller/testaction 

它顯示以下錯誤:

Not Found 

The requested URL /var/www/test/index.php was not found on this server. 

任何想法?

+0

'RewriteBase' ? –

+0

@Awan你解決了這個問題嗎?我有同樣的問題,如果你已經解決了問題,請幫助我。謝謝+1 :) –

回答

2
Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . index.php 

htaccess內容。

'urlManager' => array(
    'urlFormat' => 'path', 
    'showScriptName' => false, 
    'rules' => array(
     '<controller:\w+>/<id:\d+>' => '<controller>/view', 
     '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>', 
     '<controller:\w+>/<action:\w+>' => '<controller>/<action>'), 

在你的main.php中的urlmanager配置。或者你可以自定義它,如果你想。

+1

閱讀http://www.yiiframework.com/doc/guide/1.1/en/topics.url話題。這將是有用的。 – ineersa

+0

這真的節省了我的時間。它正在工作 – Turikumwe

2

確保您的項目在httpd.conf中的Web目錄的AllowOverride爲「All」。如果沒有,更改值並重新啓動Web服務器

+0

工作!謝謝 – shadesco

4

我有同樣的麻煩。 我使用的Apache配置別名,如:

<VirtualHost *:80> 
... 

Alias /project "/Users/foo/Sites/project" 

... 
</VirtualHost> 

來解決,我用 「RewriteBase」 指令。htaccess的,例如:

RewriteEngine on 
RewriteBase /project # <---- Modify here! and remove this comment. 

# if a directory or a file exists, use it directly 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

# otherwise forward it to index.php 
RewriteRule . index.php 

來源:http://www.yiiframework.com/wiki/214/url-hide-index-php/#c9725

0

我解決了這個編輯Apache的配置文件在: {{ApacheDir}}/conf/httpd.conf
和未發表評論/添加以下行: LoadModule rewrite_module modules/mod_rewrite.so