Forum Webscript.Ru
Общие => Веб Сервера => Тема начата: Boatman от 31 Июля 2002, 13:54:50
-
Есть такой способ создания человеко-понятных урлов:
в файле .хтаксесс добавляешь -
Action parser /index.php
ForceType parser
и все начинающееся с /content в строке браузера будет передано в /index.php.
Но вот проблема - если я хочу обрабатывать не только виртуальную папку «content», а все, что бы юзер в строке после имени сервера ни ввел, то надо использовать FIlesMatch, который сильно тормозит и практически вешает мой апач (win98se, apache 1.3.20 php4.2.1 as a module)
как быть?
-
Boatman
Никак. 98 не сетевая система.
Вариант 1: проверить на UNIX машине (у хостера, например)
Вариант 2: Поставить Вынь2000.
Вариант 3: Поставить Апач 2.0.39 - он работает быстрее
Лучше использовать первые два варианта.
-
При чем тут сеть, я локально тестю.
Проверил я у хостера - не дождался ответа сервера 8-0
не знаю, что он теперь мне сделает :-)
-
Boatman
Значит директива криво написана.
И вообще, зачем все так усложнять?
-
пусть лучше сложности будут у программера, чем потом у юзера.
Директива нормально написана, пробовал много вариантов:
".{5,}"
"[a-z0-9]+"
etc...
Может кто подскажет куда можно еще обратиться с этой проблемой, какие зарубежные хорошие форумы?
-
Boatman
Есть такой способ создания человеко-понятных урлов:
в файле .хтаксесс добавляешь -
Action parser /index.php
ForceType parser
А можно поподробнее, как это делается?
-
Boatman попробуй через mod_rewrite, вот тут (http://SiteMaker.Ru/) есть 4 классных статьи на эту тему.
P.S. А кто-нибудь знает mod_rewrite под фортачками глючит??? Мне кажется что да, но может это только у меня такое. :(
-
mod_rewrite под фортачками глючит
Нет
-
Нет
Вот кусок из моего лога:
add path-info postfix: c:/home/portal/www/info -> c:/home/portal/www/info/work/index.html
strip per-dir prefix: c:/home/portal/www/info/work/index.html -> info/work/index.html
applying pattern \'^([a-z\\.]+)/(.+)\\.html$\' to uri \'info/work/index.html\'
rewrite info/work/index.html -> info.work/index.html
add per-dir prefix: info.work/index.html -> c:/home/portal/www/info.work/index.html
add path-info postfix: c:/home/portal/www/info.work/index.html -> c:/home/portal/www/info.work/index.html/work/index.html
Как видишь ошибка в последней строке и в результате этого происходит зацикливание :(, это уже действие модуля и моя рега на это не влияет, а это .htaccess:
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule ^([a-z\\.]+)/(.+)\\.html$ $1.$2.html [N]
RewriteRule ^(.*)\\.html$ /cash/$1.htm
В примере я запросил этот УРЛ: "http://portal/info/work/index.html"
Нужно получить это: "http://portal/cash/info.work.index.htm"
Что скажешь ThE0ReTiC?
-
2fog:
http://www.sabren.net/code/php/snurk/ — тут подробнее.
Если получится решить мою проблему — дай знать.
2All:
С мод_рерайт большого ума не надо :)
В том-то и прикол, чтоб не используя никаких модулей, все работало.
Во-первых это хостеронезависимое решение (вдруг у него нет мод_рерайт),
и во-вторых ПМСМ это, пусть незначительно, но быстрее чем с мод_рерайт.
-
Unregistered
Сильно сомневаюсь, что это работает быстрее.
Потом на всех нормальных хостингах дают mod_rewrite по умолчанию...
-
Обьясни свое сомнение.
Ведь по-моему не запустить модуль гораздо проще чем запустить.
-
Дело в том, что при использовании mod_rewrite ты пользуешься специально предназначенной для решения подобных задач скомпилированной библиотекой, а при использовании хостеронезависивых вещей, обработка происходит при помощи интерпретируемого языка, который специально под это не заточен и работает медленнее, нежели скомпилированный софт.
К тому же ты дополнительно нагружаешь mod_php