私は基本的な小さなCMSを作成しており、RewriteRulesを使用して各リクエストをindex.phpにリダイレクトします。その後、残りのURIを解析し、リクエストされたサイトをまとめるためにさまざまなphpファイルを要求/インクルードします。URIの書き換えと解析は問題なく機能しているようですが、phpファイルをインクルードしようとすると、index.phpのすべての出力が消去され、インクルードされたphpファイルの出力のみが表示されます。
問題をテストするための基本的なスクリプトを作成しましたが、問題が見つかりません。
index.php
<?php
if(isset($_GET['parameter_1']))
$get_parameter_1 = $_GET['parameter_1'];
if(isset($get_parameter_1))
{
echo "You favourite colour is ";
if($get_parameter_1 == "red")
{
include('red.php');
}
else
{
echo "obviously not red.";
}
}
else
{
echo "
Parameter not set.
";
}
?>
red.php
<?php
echo "red";
?>
.htaccess
RewriteEngine on
RewriteBase /htaccess_testing/
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteRule \.(php)$ - [L]
RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}/htaccess_testing/$1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)/?$ /htaccess_testing/index.php?parameter_1=$1 [L]
www.example.com/htaccess_testing/をリクエストすると、「パラメータが設定されていません」と正しく表示されます。
www.example.com/htaccess_texting/blue/をリクエストすると、「お気に入りの色は明らかに赤ではありません」と正しく表示されます。
www.example.com/htaccess_testing/red/をリクエストすると、「赤」のみが表示されます。「好きな色は赤」ではなく。何をすべきか...
誰かが私の間違いを指摘できますか?ありがとう/K