[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ЧПУ
Remka
Доброго времени суток форумчане!
Изначально хотелось бы выразить благодарность данному форуму за поддержку в моих начинаниях.
Всякий раз когда я упираюсь в тупик и прихожу сюда с вопросом мне все раскладывают по полкам.
Этот раз не исключение.

начну с обеспечения
ОС: Windows server 2008 r2
Веб сервер: IIS7
Панель управления: Plesk 9.0
Все лицензионное.
С официального сайта компании microsoft скачал mode rewrite
При импорте правил .htaccess проблем не возникает более того правила вступают в силу и работают на сайте.
в чем проблема:
Есть ссылки формата
sitename.ru/ index.php?v=main
sitename.ru/ index.php?v=static&id=3
sitename.ru/ index.php?v=static&id=3&id=1

Поясняю:
Есть каталог с модулями где есть исполнительный файл view.php
в данном случае ?v=main Это модуль main и в нем файл view.php
сделан файлик который обрабатывает все это
выпишу три строчки остальное аналогично

$m = trim(isset($_POST['m'])? $_POST['m']: $_GET['m']);
$v = trim(isset($_POST['v'])? $_POST['v']: $_GET['v']);
$n = trim(isset($_POST['n'])? $_POST['n']: $_GET['n']);

if ($m != ''){
include( FWE_MODULES .''. $m . '/mod.php');
}
elseif ($v != ''){
include( FWE_MODULES .''. $v . '/view.php');
}
elseif ($n != ''){
include( FWE_MODULES .''. $n . '/new.php');
}
else{
#Тут условие пере направляющее на стартовую
}


сделал я эти ссылки нормальными
но управлять этим не могу и сами ссылки приходится писать полностью
то есть http://sitename.ru/main/view.html
а если прописать вот так main/view.html
то в первый раз при переходе URL будет таким
http://sitename.ru/main/view.html
а если еще раз нажать на эту кнопку в меню то url станет таким
http://sitename.ru/main/main/view.html

Также немогу выключить ЧПУ тоесть если только .htaccess удалить
а хотелось бы сделать специальную кнопочку в админке под это

Пользовался материалами irbis-team.com
Написанно хорошо но вот для меня оказалось далеким

Вообщем я так и не понял сколько файлов, функций должны обрабатывать эту ЧПУ
как сделать так чтобы можно было включать и выключать ЧПУ

Прошу вашей помощи!



Спустя 20 часов, 46 минут, 5 секунд (24.08.2010 - 22:13) Nord написал(а):
Где-то я это уже писал, но самое простое - писать ссылки от корня сайта так: /main/view.html

Спустя 2 часа, 42 минуты, 14 секунд (25.08.2010 - 00:55) Remka написал(а):

Nord
Дело не в том что я немогу сформировать ссылки
Я хочу чтобы я мог отключать ЧПУ из админки
и все ссылки становились бы обычными

Вот этого я и не понимаю=(

Спустя 2 минуты, 48 секунд (25.08.2010 - 00:58) Rivalryzerg написал(а):
Remka, а есть весомая причина включать/выключать ЧПУ? Почему просто не использовать их всегда?

Спустя 6 минут, 27 секунд (25.08.2010 - 01:05) Remka написал(а):
Дело в том что пару копий я планирую продать
после чего возможно буду дальше развивать двигатель

Спустя 5 минут, 31 секунда (25.08.2010 - 01:10) Remka написал(а):
Вообщем тогда я вообще ничего не понимаю
раз все ЧПУ осуществляется исключительно .htaccess зачем тогда irbis-team делали специальный обработчик?
вот этого не могу понять


Ок давайте прощще
Ссылки я сделаю

Как сделать так чтобы я в шаблоне
вместо:
Если нет ЧПУ то index?v=main
Если есть ЧПУ то /main/view.html

Делал какую нить одну хитрую запись которая бы выводила один из вариантов представленных выше в зависимости от того включен ли реврайт в конфиге?

Спустя 4 минуты, 35 секунд (25.08.2010 - 01:15) Rivalryzerg написал(а):
1. лучше не использовать php на windows-сервере
2. если уж так требуется переключение, то я бы в любом случае подключил mod_rewrite и заворачивал url на index.php, но при этом в самом index.php уже разруливал url с учетом "галочки ЧПУ"

Но если честно - вообще бы не начинал это. Это моветон на мой взгляд

Спустя 4 минуты, 57 секунд (25.08.2010 - 01:20) Remka написал(а):
а почему php на windows лучше не использовать?

Чем вообще Windows Всем так неугодил?
никто пока толком не ответил почему Windows это плохо?

Спустя 46 минут, 15 секунд (25.08.2010 - 02:06) Rivalryzerg написал(а):
php изначально разрабатывался под unix. На windows платформе очень много проблем с ним и глюков.

1. Если под unix мы собираем из исходников php библиотеки с учетом параметров ОС и среды, то под винду имеем уже скомпилированные dll'ки. Конечно можно собирать и под винду, но это как минимум намного сложнее. С последними версиями php - многие из dll просто отказываются работать.

2. Одних библиотек php мало: мы используем и mysql, и gd, и многие другие полезные расширения, которые изначально тоже разрабатывались под unix. Компилировать и собирать всё это дело из исходников под средой windows - еще куча геморроя.

3. Проблема снова связана с платформой: разработчики php уделяют багам на винде очень мало внимания. Порой баг репорты, связанные с виндой, висят месяцами.

Я могу еще много привести проблем работы php на windows платформе, которые встречал в своей работе. Но тут важнее вот какой факт: программы, написанные под определенную ОС, лучше использовать именно на этой ОС, чем пытаться запускать их на других системах.

Спустя 7 часов, 31 минута, 34 секунды (25.08.2010 - 09:37) ApuktaChehov написал(а):
Rivalryzerg вынужден вам возразить.
Возможно не самая лучшая идея использовать PHP в месте с IIS. Но грешить на платформу я не стал бы.

У меня дома под XP стоял php, теперь под windows 7, на работе по 2003 сервером стоит и под 2008. Уже много лет я использую PHP под windows и все хорошо.

Конечно, некоторые моменты в PHP под windows недоступны, но это не значит что нужно говорить, что PHP под windows ставить - плохая идея.
Цитата
программы, написанные под определенную ОС, лучше использовать именно на этой ОС, чем пытаться запускать их на других системах.


Зачем же тогда напридумывали всяки эмуляторы виндовса под unix?

Rivalryzerg не пугайте людей. Может PHP работает под windows не лучше чем под unix, но он РАБОТАЕТ и работает нормально.

Remka а вам я посоветую поставить apache.

P.S. Apache тоже написан под Unix. Но при этом хорошо работает и под windows.

Спустя 5 часов, 16 минут, 50 секунд (25.08.2010 - 14:54) Rivalryzerg написал(а):
ApuktaChehov, вынужден и вам возразить. На новенький, только что установленный лицензионный winXP sp3 не работают вместе последние stable версия apache, php 5.2.x и mysql 5.х. Не верите - проверьте. Проблема заключается в какой-то несовместимости скомпилированной libmysql. Конечно же можно все пересобрать, но это уже сложности, которые совершенно не нужны веб разработчику.

Про сборки типа денвера я нарочно умолчал.

Вы же сами пишите что некоторые моменты недоступны. Этого достаточно чтобы не использовать apache/php на windows.

А эмуляторы для unix напридумывали извращенцы имо. Это из серии "поиграть в win-игры на юниксе или рисовать под юниксом в фотошопе"

И я никого не пугаю. Я лишь указываю на непрофессиональный подход.

PS: это обсуждение если интересно лучше вынести в отдельную тему. Конкретно эта тема о ЧПУ

Спустя 56 минут, 22 секунды (25.08.2010 - 15:51) twin написал(а):
Вы чего спорите о том, чего еще не видели вообще?
Remka
Ты .htaccess то покажи.

Спустя 38 минут, 48 секунд (25.08.2010 - 16:29) Dingo написал(а):
Remka это для вас, http://blgo.ru/blog/2009/02/27/url/, называется работаем с URI сами , бугага))

Спустя 2 часа, 6 секунд (25.08.2010 - 18:30) Remka написал(а):
ApuktaChehov
Дело в том что стоит PLESK а он в свою очередь использует апач под php


twin
Вот .htaccess


RewriteEngine On
RewriteRule ^([^/]*)\/mod.fwe$ /index.php?m=$1 [L]
RewriteRule ^([^/]*)\/view.fwe$ /index.php?v=$1 [L]
RewriteRule ^([^/]*)\/new.fwe$ /index.php?n=$1 [L]
RewriteRule ^([^/]*)\/add.fwe$ /index.php?a=$1 [L]
RewriteRule ^([^/]*)\/edit.fwe$ /index.php?e=$1 [L]
RewriteRule ^([^/]*)\/delete.fwe$ /index.php?d=$1 [L]
RewriteRule ^([^/]*)\/send.fwe$ /index.php?s=$1 [L]
RewriteRule ^([^/]*)\/inbox.fwe$ /index.php?in=$1 [L]
RewriteRule ^([^/]*)\/outbox.fwe$ /index.php?ou=$1 [L]
RewriteRule ^([^/]*)\/ok.fwe$ /index.php?ok=$1 [L]
RewriteRule ^([^/]*)\/err.fwe$ /index.php?err1=$1 [L]

Спустя 1 час, 44 минуты, 2 секунды (25.08.2010 - 20:14) twin написал(а):
На кой там бэкслэш?
И просто слэш на кой...
Вот так почище

RewriteEngine On
RewriteRule ^([^/]*)/mod.fwe$ index.php?m=$1 [L]
RewriteRule ^([^/]*)/view.fwe$ index.php?v=$1 [L]
RewriteRule ^([^/]*)/new.fwe$ index.php?n=$1 [L]
RewriteRule ^([^/]*)/add.fwe$ index.php?a=$1 [L]
RewriteRule ^([^/]*)/edit.fwe$ index.php?e=$1 [L]
RewriteRule ^([^/]*)/delete.fwe$ index.php?d=$1 [L]
RewriteRule ^([^/]*)/send.fwe$ index.php?s=$1 [L]
RewriteRule ^([^/]*)/inbox.fwe$ index.php?in=$1 [L]
RewriteRule ^([^/]*)/outbox.fwe$ index.php?ou=$1 [L]
RewriteRule ^([^/]*)/ok.fwe$ index.php?ok=$1 [L]
RewriteRule ^([^/]*)/err.fwe$ index.php?err1=$1 [L]

Но проблема у тебя не в том. Проблема в том, что ссылка не от корня.
Поставь в начало слэш. Ты тут слэшей лишних написал, а там пожадничал)))

<a href="/main/view.html" >


Спустя 3 часа, 50 минут, 53 секунды (26.08.2010 - 00:05) inpost написал(а):
Собственно это из ряда HTML, есть такой волшебный тег: <base> и все проблемы решает =)

Спустя 2 минуты, 48 секунд (26.08.2010 - 00:07) Remka написал(а):
twin
Спасибо!
А на счет включения и выключения в данном случае никак?

Спустя 4 часа, 16 минут, 14 секунд (26.08.2010 - 04:24) twin написал(а):
Цитата
А на счет включения и выключения в данном случае никак?

каких включений?

Спустя 3 часа, 14 минут, 15 секунд (26.08.2010 - 07:38) Remka написал(а):
Все я сам догадался=)
Всем спасибо огромное за помощь ща наставлю плючиков
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.