2012-03-03 137 views
0

在刪除index.php時出現問題?從網址:CodeIgniter Mod_Rewrite問題

http://localhost/index.php?/reset_password 

隨着htaccess文件:

# Customized error messages. 
ErrorDocument 404 /index.php 
# Set the default handler. 
DirectoryIndex index.php 
# Various rewrite rules. 
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule> 

CI設置:

$config['uri_protocol'] = 'AUTO'; 

我看着這裏有類似問題的其他線程,但沒有自己的htaccess檔案工作。我錯過了一個設置?

+0

如果您可以通過其他不適合您的'.htaccess'設置鏈接到帖子,那將非常有幫助。 – 2012-03-03 23:20:46

+0

第一個5 http://stackoverflow.com/search?q=CodeIgniter+Mod_Rewrite+issues – user781439 2012-03-03 23:23:38

回答

5

我從未見過.htaccess之前設置,雖然它可能工作。我用這個每一個CI項目,我已經做了,不妨一試:

<IfModule mod_rewrite.c> 

    RewriteEngine on 

    # If the start of the URL doesn't match one of these... 
    RewriteCond $1 !^(index\.php|robots\.txt|assets|cache|themes|uploads) 

    # Route through index.php 
    RewriteRule ^(.*)$ index.php/$1 [L] 

</IfModule> 

添加不config.php忘記:

/* 
|-------------------------------------------------------------------------- 
| Index File 
|-------------------------------------------------------------------------- 
| 
| Typically this will be your index.php file, unless you've renamed it to 
| something else. If you are using mod_rewrite to remove the page set this 
| variable so that it is blank. 
| 
*/ 
$config['index_page'] = ''; 

請記住:這會不會「刪除「index.php會自動從您的URL中導出,但如果請求不存在,請將其路由到它。如果您在其中有index.php的硬編碼鏈接,則必須更改它們,否則您需要額外配置.htaccess。如果您使用的是base_url(),site_url()anchor()等CI網址功能,如果您在上面的配置中將它設爲空白,它們將不會使用index.php

+0

有趣的是,我在$ config ['index_page'] ='index.php';所以刪除後,我的網址現在是:http:// localhost /?/ reset_password。可能還有其他一些設置? – user781439 2012-03-03 23:23:01

+1

你是如何到達該URL的?你沒有'$ config ['enable_query_strings']'你呢?如果是這樣,你需要關閉它(不要擔心這不是你的想法,這是沒用的)。用當前URL加載正確的頁面,還是忽略'?'後的所有內容? – 2012-03-03 23:24:13

+0

立即工作。非常感謝。我需要確保改變的query_strings不會破壞我的網站,所以我會看看是什麼。再次,謝謝!這麼多事情要考慮。 – user781439 2012-03-03 23:28:22

0

此代碼的工作對我來說:

如果我的網站的名字是codeIgniter_ci_intro

我使用的代碼在.htaccess

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /codeIgniter_ci_intro//index.php/$1 [L] 

,我在配置改變。 php

$config['index_page'] = '';