Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обработка ошибки
Форумы портала PHP.SU » PHP » Напишите за меня, пожалуйста » Обработка ошибки

Страниц (1): [1]
 

1. BagGins - 28 Мая, 2009 - 21:05:40 - перейти к сообщению
Есть сайт с простенькой динамической структурой:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $pages=array(
  4.   'articles'=>'Интересное',
  5.   'contacts'=>'Контакты',
  6.   'gallery'=>'Наши работы',
  7.   'home'=>'Главная',
  8.   'igu'=>'Стеклопакет',
  9.   'price'=>'Прайс-лист',
  10.   'windows'=>'Окна'
  11. );
  12. $articleIds=array(
  13.         '0'=>'choise',
  14.         '1'=>'zavod_morion',
  15.         '2'=>'kbe_expert'
  16. );
  17. if($_GET['page']=='') $_GET['page']=home;
  18. $page=$_GET['page'];
  19. $id=$_GET['id'];
  20.  
  21. if (($page=='articles') and ($id==''))
  22.         $id=0;
  23.  
  24. if (array_key_exists ($page, $pages))
  25. {
  26.        
  27.         if($page=='articles')
  28.         {
  29.         include ('content/'.$articleIds[$id].'.php');
  30.         }
  31.         else
  32.         {
  33.         include ('content/'.$page.'.php');
  34.         }
  35. }      
  36. else readfile ('content/404.php');
  37. ?>
  38.  

Также задействован mod_rewrite:
CODE (text):
скопировать код в буфер обмена
  1.  
  2. ErrorDocument 404 /content/404.php
  3. RewriteEngine on
  4.  
  5. RewriteRule ^.htaccess$ - [F]
  6.  
  7. RewriteBase /
  8. RewriteCond %{REQUEST_FILENAME} !-f
  9. RewriteRule ^articles/([0-9^/]+)/$ /index.php?page=articles&id=$1
  10. RewriteRule ^([A-Za-z0-9^/]+)/$ /index.php?page=$1
  11.  
  12.  


Проблема в том, что когда url вида http://domain[dot]name/a , то выводится просто файл 404.php с ошибкой, а когда url вида http://domain[dot]name/a/ , то файл с ошибкой инклюдится в тело сайта.

Подскажите люди добрые, как свести оба варианта к одному, какому-нибудь?
2. valenok - 28 Мая, 2009 - 21:08:59 - перейти к сообщению
У тебя в регулярке слэш в конце.
Как сделать его необязательным - можно прочесть вот тут:
http://php.su/forum/topic.php?fo...=62&topic=30

 

Powered by ExBB FM 1.0 RC1