Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

mod rewrite

2.0K
19 августа 2008 года
swordholder
99 / / 17.10.2006
Хотел занятся mod rewriting ом. В инете куча хлама но не знаю с чего начать подскажите пожалуйста какие установки нужны в httpd.conf php.ini и так далее ?
Мне надо прописать URL mysite.com/index.php&action=products&id=15
на mysite.com/products/15

Буду благодарен если пошагово обяснить кто нибудь...:o:D
92
19 августа 2008 года
Тень Пса
2.2K / / 19.10.2006
дерзай - http://htaccess.net.ru/

пошагово рассматривать тему, которая обсуждалась кучу раз... имхо, не есть гут. и не ленись, поищи. и нефига спрашивать "чтобы и ваши знания не проржавели, потому что некоторые темы искать лень"
2.0K
19 августа 2008 года
swordholder
99 / / 17.10.2006
Нет что вы я отнюдь не ленивый просто уже несколько раз пытаюсь прописать файл htaccess но веб сервер даже не реагирует на это. Я просто копирую содержимое, от себя не пишу.
Модуль htaccess.so в файле httpd.conf включил в чем может быть причина ?
LoadModule rewrite_module modules/mod_rewrite.so разкомментировал
92
19 августа 2008 года
Тень Пса
2.2K / / 19.10.2006
посмотри ссылку, которую я тебе кинул. слева есть меню, в нём есть очень по-русски написанный пунктик, там всё описано.
2.0K
20 августа 2008 года
swordholder
99 / / 17.10.2006
Кое каким образом разобрался с mod_rewrite'ом.
Прописываю URL http://mysite.com?products=tv&id=55 как http://mysite.com/tv/55
Но теперь появилась другая замарочка. Все relative path'ы от <img>, <link> тэгов и других тегов потерялись. То есть сравнительные пути к файлам пропали. То ли броузер думает что он находится в папке www/tv/55 . Попробовал на броузерах IE, FriedFox, Opera. Нигде не работает.
92
20 августа 2008 года
Тень Пса
2.2K / / 19.10.2006
покажи свой .htaccess

ты наверняка реврайтишь всё, не разбирая, катинка это или что... ну, и еще, учти, что если relative path у тебя вида images/image001.jpg то будет работать относительно данной директории (в данном случае - /tv/55/images/image001.jpg), а для того чтобы было относительно корня - добавь в начало /
2.0K
20 августа 2008 года
swordholder
99 / / 17.10.2006
Вот мой .htaccess файл.

Options +FollowSymLinks
Options -Indexes
RewriteEngine on
#Если только одно переменное было дано
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?action=$1
#Если переменных было две
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)$ index.php?action=$1&id=$2 [L]
92
25 августа 2008 года
Тень Пса
2.2K / / 19.10.2006
не, чёт у тебя совсем всё статично до жути...

то есть если будет /news/print/55 то тогда у тебя id новости не скушается =)

можно например так...
 
Код:
RewriteCond %{REQUEST_URI} !^.*images.*$
RewriteCond %{REQUEST_URI} !^.*another_static_content.*$

RewriteRule ^([^\/]*?)\/{0,1}(.*)$ index.php?module=$1&param=$2 [L]


примерно так (не проверял), тогда при URI - /news/print/55 у тебя в скрипте будет 2 параметра в $_GET:

 
Код:
$_GET["module"] = "news";
$_GET["param"] = "print/55"; // этот параметр бьёшь по / и разбираешься как и с чем поступать....


ну, это например :) так что - дерзай =)
41K
31 августа 2008 года
Jackkum
1 / / 31.07.2008
А почему бы не сделать так?

файл .htaccess
ErrorDocument 403 /index.php
ErrorDocument 404 /index.php
ErrorDocument 500 /index.php

__________________________

файл index.php

Код:
<?php
require_once("admin.php");
$main_site = "";
if($mode=admin::getMode()){
     switch($mode[0]){
         case '':{
              $main_site .= main::top($mode);
              $main_site .= main::main($mode);
              $main_site .= main::bottom($mode);
              break;
          }
          case 'news':{
               $main_site .= news::allnews($mode);
               break;
          }
          default:{
               
          }
     }
}
if($main_site != ""){
     header("HTTP/1.0 200 Ok");
     echo $main_site;
}else header("HTTP/1.0 400 Ok");
?>

файл admin.php

Код:
<?php
class admin {
     var $RequestUrl;
     var $mode;
     public function getMode(){
          $this->RequestUrl = $_SERVER['REQUEST_URI'];
          $this->RequestUrl = eregi_replace("^/","",$this->RequestUrl);
          $this->RequestUrl = eregi_replace("/$","",$this->RequestUrl);
          $this->mode = explode("/",$this->RequestUrl);
          if(count($this->mode)>0){
                return $this->mode;
          }else{
                return false;
          }
     }
}
?>


А дальше передавай сколько угодно по всем функциям переменную $mode и обрабатывай как хочешь...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог