2011-11-15 7 views
1

書き換えという名前のフォルダには、私は2つのファイルの.htaccess.htaccessののindex.php構成のためにRewriteRuleがすべてのサーバーで動作していませんか?

<rewrite> 
- .htaccess 
- index.php 

を持って、私はこのコンテンツ

RewriteEngine On 
RewriteRule ^([a-z0-9]+)?$ index.php?id=$1 [NC,L] 

でを持っていますindex.php

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

私が訪問したときには想定されていませんwww.domain.com/rewrite/1234出力はになりますか?その代わりをダウンロードするためのファイルアプリケーション/ X-のhttpd-phpのが作成され、このの
は、私はこれを実現することができない理由を把握しようとしていますのindex.php

のコードが含まれています。私はここで何が欠けていますか?

更新
私は2つのWebサーバーとローカルサーバーをテストしました。最後に、Webサーバーの1つで動作しました。つまり、構成と関係があります。

どうすればよいですか?

+0

あなたのウェブはPHPのサーバー設定?正しく設定されていることを確認してください。 –

+0

私は疑問符がそれを投げ捨てていると思います。 'rewrite/1234'の代わりに' rewrite/1234? 'に行く必要があると考えています。 –

+0

@TimCooperあなたはそうです。私は別のWebサーバで試してみました。だから私の更新された質問は、これらの設定は何ですか? – EnexoOnoma

答えて

1

いずれかのサーバーでmod_rewriteが有効になっていない可能性があります。テスト作るようにするには

:フォルダで

は、二つのファイル作り: - .htaccessの - rewrite.php

.htaccesプット:

RewriteEngine On 
RewriteRule ^link([^/]*).html$ rewrite.php?link=$1 [L] 

rewrite.phpプットでは:

<h2 align=center> 
<? 
if(isset($_GET['link'])) 
{ 
    if($_GET['link']==1){echo "Link without use mod_rewrite";} 
    elseif($_GET['link']==2){echo "Congratulations!! You has used Apache's mod_rewrite and works well.";} 
    else{ echo "Verify the Apache's module mod_rewrite.";} 
} 
?> 
</h2> 
<hr> 
<head> 
<title>Test mod_rewrite in Apache Linux</title> 
</head> 
<body> 
<h1>Test mod_rewrite in Apache Linux</h1> 
<p><a href="rewrite.php?link=1">Link one </a> = rewrite.php?link=1</p> 
<p><a href="link2.html">Link two</a> = link2.html</p> 
<ul> 
<li>Test link one</li> 
<li>Then test the link two</li> 
<li>If with the link two if the link two goes to a not found page then you have not activated the .htaccess or apache mod_rewrite is not working.</li> 
</ul> 
</body> 
</html> 
関連する問題