Наследование может быть сложным. Давайте запустимся с самого простого из них всех - наследование поведения. Вот, пожалуйста наследовав поведение только и никакое состояние. Например: И Человеком и Животным являются Одушевленные объекты, которые показывают поведение IsAlive. Использовать Ваш пример:
class LivingThing {
/* We propose a new type */
public:
virtual bool IsAlive() = 0;
virtual void Birth() = 0;
virtual void Death() = 0;
};
class Person : public LivingThing {
/* A real living thing */
public:
virtual bool IsAlive() { return true; }
virtual void Birth() {}
virtual void Death() {}
/* .. and has some special behavior */
void Marry();
void Divorce();
};
class Animal: public LivingThing {
/* A real living thing */
public:
virtual bool IsAlive() { return true; }
virtual void Birth() {}
virtual void Death() {}
/* .. and has some special behavior */
void Bite();
void Bark();
};
я записал этому использованию синтаксис C++, если Вы имеете проблемы при понимании какого-либо из него, просто говорите так!
Я тоже бился головой об этом. Я также устанавливаю Code Igniter.
Goocher не был RewriteBase. Вот мой .htaccess:
DirectoryIndex index.php
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]
Попробуйте, если он работает с более простым RewriteCond
; как тот, который перезаписывает только все, что не является существующим файлом / папкой / ссылкой:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ /index.php/$1 [R,L]
mod_rewrite
слишком умен для собственного блага, потому что он пытается выяснить, какой тип перенаправления он должен делать. В этом случае mod_rewrite
выглядит так, как будто вы пытаетесь перенаправить в папку, поэтому он ищет папку и не может ее найти, отсюда и ошибка.
Изменить: Просто для полной ясности, я думаю, лучше всего изменить правило перезаписи на:
RewriteRule ^(.*)$ /index.php?$1 [L]
, если нет очень конкретной причины, по которой вы хотите использовать косую черту.
Редактировать 2: Я вижу, что вы уже пробовал это. Причина, по которой вы получаете бесконечный цикл, заключается в том, что у вас есть index.php в вашем условии перезаписи. Если вы удалите это, вы должны освободиться от бесконечного цикла.
Очень вероятно, что администратор вашего хоста отключил возможность используйте Rewrite в .htaccess. Возможно, у них даже не установлен mod_rewrite.
Отправьте им электронное письмо и спросите
Поскольку это проблема конфигурации сервера, возможно, вам следует спросить на Ошибка сервера
Редактировать (поскольку вы уверены, что сервер настроен правильно)
Рассматривали ли вы возможность пометить свой RewriteCond концом строки $?
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)
Будет ли (на основе моих ограниченных знаний) блокировать любой URL-адрес, содержащий index.php, css, gfx ... в начале URL. Поскольку у вас нет символа $ в конце регулярного выражения, оно также будет блокировать любые URL-адреса, которые продолжаются оттуда ...
То есть www.yourdomain.com/index. php / something
не перенаправляется, то же самое с www.yourdomain.com/js/something
Возможно, вы хотите добавить $, который потребует, чтобы url заканчивался сразу после вашего регулярного выражения.
RewriteCond $1 !^(index\.php|css|gfx|js|swf|robots\.txt|favicon\.ico)$
Возможно, на вашем сервере отключен AcceptPathInfo
, что необходимо для правильной работы такого URL . Попробуйте включить его:
AcceptPathInfo On
Хорошо, попробуйте это правило:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !^index\.php(/|$) index.php%{REQUEST_URI} [L]