2011-10-31 23 views
1

私はこの問題があります: サーバーの管理者は、彼はApacheサーバーに対してrewrite_moduleを有効にしていたと言いますが、この機能をテストするためにサーバーにいくつかのテストファイルをアップロードすると、.htaccess URLを書き換えません

私はlocalhostで有効にしていますが、そこでは正常に動作します。

.htaccessの内容:

Options +FollowSymlinks 
RewriteEngine on 
RewriteRule ^games/(.*)$ games.php?id=$1 [L] 

games.php内容:

<?php 
$var = $_GET['id']; 
echo $var; 
?> 

のURL:

localhost url:http://localhost/testing/games/123123 
production url:http://mysite.com/test2/games/123123 

TEST2は、ファイル(.htaccessファイルやゲームを含むフォルダです。 php) プロダクションで何が起こるかは、これをタイプすると、私はgames.phpというページを取得しますが、idはdo私が提供したID 123123を取得するのではなく、エコーされず、クエリ文字列が空です。ローカルホストはすべて正常に動作し、IDはエコーされます。 管理者が間違っていたり、何か?前もって感謝します。

答えて

4

あなたはサブディレクトリにあり、要求が「ゲーム」で始まると書き直すようエンジンに指示しています。あなたはキャレット^を削除しようとする、またはスラッシュでそれを置き換える/ ...または上RewriteEngine後にこれを追加することができます。

生産の
RewriteBase /testing/ 

RewriteBase /test2/ 

か試してみてください。

RewriteEngine On 
RewriteBase /test2/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^games/(.*)$ games.php?id=$1 [QSA,L] 
+0

また、.htaccessがmod_rewriteなどの設定を上書きできるように、Apacheの設定ファイルでAllowOverrideがAllに設定されているかどうかを再確認することができます。 –

+0

これは機能しません。私はhtaccessがまったく呼び出されないと思います。 mysite.com/test2/gamesファイルを削除すると404エラーが出るのではなく、games.phpファイルが呼び出されます。mysite.com/test2/games/213123と入力すると、同じ結果が得られます - games.php gets ( –

+0

親ディレクトリに.htaccessがありますか?あれば削除してください – itsjavi