2011-10-30 12 views
0

私は現在、クリーンURLについて学んでいます。私は一度窓を使っていた。 突然私の.htaccessがここ に動作していないしているようだとき、私はそう、私はそれを期待していた、このURLにクリーンURLのPHP疑問符

http://localhost/index.php/my_name/

を持っている私のhtaccessである

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

のubuntuに切り替えブラウザの「my_name」という文字列を指定します。

hello my_名前は

ですが、「?」を追加すると機能します。 URI

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

に私はmod_rewriteをが有効になっているかなり確信しています。私もphpinfo()をチェックしました

+0

多分あなたはmod_rewriteモジュールがインストールされていない? httpd.confを確認し、ログを確認してください([info](http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog)) – Peter

+0

index.phpファイルのコードは何ですか? –

+0

今回はmod_rewriteが有効になっていますが、まだ必要ですか? $ _SERVER [QUERY_STRING] – kapitanluffy

答えて

2

書き換えモジュールが無効になっているようです。使用可能であれば、Apacheの設定を編集し、mod_rewriteの動的モジュールを読み込みます。それは次のようになります。

LoadModule rewrite_module modules/mod_rewrite.so 

Ubuntuを使用している場合は、Apacheサーバを再起動して、次のモジュールを有効にするには、sudo a2enmod rewriteを実行します。

sudo /etc/init.d/apache2 restart 
+0

私はhttpd.conf内にLoadModuleを置くでしょうか?ハードなWindowsユーザーxD – kapitanluffy

+0

@kapitanluffyどのLinuxディストリビューションをお使いですか?一般的に、あなたは本当にhttpd.confに入れていますが、ディストリビューションには独自の設定方法があるかもしれません。 – Lekensteyn

+0

私はUbuntuを使用しています – kapitanluffy

0

は解決策を見つけました。 QUERY_STRINGには何も表示されないため、$ _SERVER変数をダンプしてREQUEST_URI索引を使用しました。それは正しい道に私を導いたので+1 Lekensteynの答え