Я пишу базовую небольшую CMS и использую RewriteRules для перенаправления каждого запроса на index.php, который затем анализирует остальную часть URI и требует/включает в себя разные php-файлы, чтобы собрать запрошенный сайт. Переписывание и синтаксический анализ URI, похоже, работают очень хорошо, однако, когда я пытаюсь включить php-файл, все выходные данные index.php стираются и ТОЛЬКО выводится вывод включенного php-файла.mod_rewrite завинчивание с 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
я не вижу какого-либо содержания файлов в вашем посте. –
'mod_rewrite' имеет ** ничего **, чтобы сделать с включает в себя – zerkms
aldo: Я случайно отправил форму перед публикацией полного контента, извините. – Kodekan