Ru-Board.club
← Вернуться в раздел «Web-программирование»

» mod_rewrite: документация, готовые решения, вопросы

Автор: batton
Дата сообщения: 22.11.2006 22:12
да, если Вас не затруднит. потому что :
Options +FollowSymLinks
прописано в .htaccess


Цитата:

Options +FollowSymLinks -Indexes

RewriteEngine on
RewriteRule ^/(.*)$ http://mister-user.com/lib/bookshelf/corolla/$1 [P]
Автор: Cheery
Дата сообщения: 22.11.2006 22:19
batton

Цитата:
прописано в .htaccess

htaccess в какой папке лежит?
в корне сайта? если нет, то почему rewriterule написан от корня?
Автор: batton
Дата сообщения: 22.11.2006 22:32
лежит не в корне
http://auto-dvor.ru/lib/bookshelf/corola/.htaccess

пробовал RewriteBase /www/полный_путь_до_папки/
та же реакция
Автор: Cheery
Дата сообщения: 22.11.2006 22:36
batton

Цитата:
пробовал RewriteBase /www/полный_путь_до_папки/

при чем тут www??? это пишется для пути от корня сайта..

так corola с двумя l или одной? плюс разрешено ли менять Options в AllowOverride?

Автор: batton
Дата сообщения: 22.11.2006 22:41

Цитата:
плюс разрешено ли менять Options в AllowOverride?

а вот этого я не знаю и узнать в разумные сроки не получится потому как тех. поддержка работает ОЧЧЕНЬ медленно. а через месяц - переезжаю на другой хостинг

Цитата:
при чем тут www??? это пишется для пути от корня сайта

я считал что это полный путь в файловой структуре сервера.

Автор: max960
Дата сообщения: 25.11.2006 17:08
написав в htaccess вот это :

RewriteEngine on
RewriteBase /
Options +FollowSymlinks
RewriteRule ^link/([a-zA-Z0-9]+)\.html$ /index.php?link=$1

я добился только того, что при вводе в адресную строку http://ххх.ru/link/123.html я попадаю на http://ххх.ru/index.php?link=123 но замены динамических ссылок на самой странице не произошло, там всё также при наведении курсора показывается что это ссылка ведёт на динамический адрес и при нажатии на неё в адресной строке показывается динамика.
В связи с этим возникает вопрос - возможно ли с помощью только mod_rewrite заменять ссылки внутри страниц и передавать браузеру страницы уже со статикой? Или для этого трубуются всякие php обработчики, как во всех CMS c ЧПУ?

Например CMS KOOBI - там есть htaccess c rewrite но и в файле index.php есть директивы по замене урл и одно без другого не работает!
Автор: edogs
Дата сообщения: 25.11.2006 17:39
max960

Цитата:
я добился только того, что при вводе в адресную строку http://ххх.ru/link/123.html я попадаю на http://ххх.ru/index.php?link=123 но замены динамических ссылок на самой странице не произошло

И не должно было произойти.

Цитата:
В связи с этим возникает вопрос - возможно ли с помощью только mod_rewrite заменять ссылки внутри страниц и передавать браузеру страницы уже со статикой? И

Нет.

Цитата:
для этого трубуются всякие php обработчики, как во всех CMS c ЧПУ?

Да

Цитата:
Например CMS KOOBI - там есть htaccess c rewrite но и в файле index.php есть директивы по замене урл и одно без другого не работает!

ну естественно
Автор: phpbbmods
Дата сообщения: 29.11.2006 09:49
Привет ALL,
может, кто подскажет, как закрыть слеш на конце
условия в htaccess

Код:
RewriteEngine On
Options +FollowSymlinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)/$ /index.php?p=$1 [L]
Автор: vyvorot
Дата сообщения: 29.11.2006 10:37
Уважаемые гуру!
Есть такая проблема - мне нужно дернуть новости с сайта в формате xml. Все несложно, но сайт запаролен с помощью mod_rewrite (т.е. .htpasswd). Пароль и логин знаю. Теоретически средствами PHP я могу авторизоваться на этой страничке и качнуть необходимый файлик?


UPD. Затупил =)

http://user:pass@www.domain.com достаточно
Автор: edogs
Дата сообщения: 01.12.2006 03:12
phpbbmods

Цитата:
может, кто подскажет, как закрыть слеш на конце

добавьте /? в конце, сразу после {requies_filename}
Автор: phpbbmods
Дата сообщения: 01.12.2006 08:47
edogs
это /? просто делает возможным работы /main
но не закрывает слэшь!
Автор: sTa1kEr
Дата сообщения: 01.12.2006 10:33

Цитата:
может, кто подскажет, как закрыть слеш на конце

В этом топике уже было решение:


Цитата:
Для борьбы с недостающими слэшами использую следующий метод:
В самом конце файла .htaccess пишу следующее правило.
Важно Правило должно быть последним


Код: ###########################
# SLASH PROBLEM
###########################

RewriteCond %{REQUEST_URI} !/$
RewriteCOND %{REQUEST_URI} ![^/]*\.[^/]*$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [NS,L,R=301]

Автор: phpbbmods
Дата сообщения: 01.12.2006 21:12
sTa1kEr
да прав но такой код чтото у меня работает но он убивает условия другие,
я вот немогу понять
RewriteCOND %{REQUEST_URI} ![^/]*\.[^/]*$
если не выполняется то идет
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [NS,L,R=301]
те незакрыта слэшь идет перенаправление?
Автор: sTa1kEr
Дата сообщения: 01.12.2006 23:14
phpbbmods

Цитата:
те незакрыта слэшь идет перенаправление?

Т.е. если нету слеша в конце, то перенаправляется на тот же адрес, но со слешем на конце
Автор: kentik
Дата сообщения: 02.12.2006 15:26
пипл, если кто работал с RewriteMap, подскажите
не видит скрипт в упор: map lookup FAILED
использую prg:
если использовать просто txt: , то все работает
Автор: sTa1kEr
Дата сообщения: 03.12.2006 13:19
kentik
Права на исполнение файла есть?
Путь к интерпретатору на 1ой строке прописан?
Автор: kentik
Дата сообщения: 03.12.2006 14:31
sTa1kEr
ага, права и 777 ставил и из командной строки запускал, сам по себе пашет

пробовал и под виндой тоже, даже скрипт в exe скомпилил

под юниксом апач 1.3, под виндой 2
Автор: sTa1kEr
Дата сообщения: 03.12.2006 16:55
kentik

Цитата:
Путь к интерпретатору на 1ой строке прописан?

???
Автор: batton
Дата сообщения: 03.12.2006 18:30
а возможно ли сделать чтобы по одному совпадению с правилом выполнялось два действия.
а именно: переписывался УРЛ и вызывался скрипт?

Автор: kentik
Дата сообщения: 03.12.2006 20:31
sTa1kEr
само собой прописан

вообще кто-нибудь пробовал в качестве карты скрипт подключать?
Автор: kentik
Дата сообщения: 05.12.2006 11:37
таки запустил под виндой

httpd.conf
<IfModule mod_rewrite.c>
RewriteEngine        on
RewriteMap        fs "prg:C:/php/php-win.exe -f C:/www/localhost/test.php"
</IfModule>


test.php
<?
do
{
$in = trim(fgets(STDIN,8096));
if (strlen($in) >0)
{
fputs(STDOUT, "false\n");
}
} while (true)
?>

.htaccess
Options        FollowSymLinks
RewriteEngine    on
RewriteCond    ${fs:false} false
Автор: 2ramil
Дата сообщения: 28.12.2006 15:06
нужно, чтобы все запросы к /folder перенаправлялись на /index.php?m=folder, а /folder/param на /index.php?m=folder&a=param, и чтобы ещё настоящая папка /forum тоде была доступна. можете помочь?
Автор: Teze
Дата сообщения: 07.01.2007 07:55

Это правда, что сложная структура ЧПУ прибавит нагрузки на сервер? Типа site.com/1/2/3/4/5/6/7/8/9/0/ и так далее.

Автор: afiget
Дата сообщения: 07.01.2007 17:29
2ramil
Тип параметра не указан, допустим, число

RewriteRule ^folder[/]?$ index.php?m=folder [L]
RewriteRule ^folder/([0-9]+)[/]?$ index.php?m=folder&a=$1 [L]

PS
Не проверял. Сделал по аналогии со своим.
Автор: SlayeR
Дата сообщения: 14.01.2007 04:06
Ой не знаю туда ли обращаюсь, но вот задача:

На сервере существует файл, название которого зашифровано в непонятный набор символов.
Что то вроде: kaskldwokmxcnuenxsirrfd.jpg Ситуация обязывает не показывать нормальных имён.
Нужно при обращении к этому файлу название расшифровывать. Допустим kaskldwokmxcnuenxsirrfd.jpg расшифровывается в picture.jpg и пользователь сохраняет картинку уже под нормальным именем.
Сам алгоритм шифрования/дешифрования написан на php.

В итоге если пользователь будет открывать:
http://mydomain.com/dir/picture.jpg (которого нет), то ему выдаст физически существующий http://mydomain.com/dir/kaskldwokmxcnuenxsirrfd.jpg

1. Вот как подменить имя файла?
2. mod_rewite поможет?
3. Тогда каким образом нужно передавать имя файла php скрипту.
4. И как потом возвращать уже обработанное имя апачу?
5. Никто не видел готовых решений?
Автор: batton
Дата сообщения: 15.01.2007 11:16
на перле я делал так:
база с парой - имя реальное | имя выдаваемое
скрипт читает запрашиваемое имя выбирает из базы реальное расположение ( у меня еще делает симлинк) и отдает через print "Location:url /n/n"
НО это я делал для контроллируемой отдачи pdf
а mod_rewrite как раз и поможет преобразовать http://mydomain.com/dir/picture.jpg в http://mydomain.com/script.php?file=picture.jpg
хотя опять же, если картинки просто в теле страницы то это надо решать по другому
Автор: SlayeR
Дата сообщения: 21.01.2007 04:57
Ух разобрался. RewriteMap рулит, но есть пару вопросов.

Так у меня работает под виндой:
httpdconf (в VirtualHost, если есть оный)

Код:
RewriteMap map "prg:D:/Server/PHP/php-win.exe -f D:/WWW/map.php"
Автор: Qwezar
Дата сообщения: 22.01.2007 19:41
Люди, нужен хэлп. В общем в .htaccess:

для изменения линков на index.php сделал так


Код: .....
RewriteRule ^(.*)$ /index.php?id=$1
.....
Автор: 2ramil
Дата сообщения: 31.01.2007 20:42
нужно, чтобы все запросы к /folder перенаправлялись на /index.php?m=folder, а /folder/param на /index.php?m=folder&a=param, и чтобы ещё настоящая папка /forum тоде была доступна. можете помочь?
Автор: dacuan
Дата сообщения: 01.02.2007 09:24
2ramil
Имеется в виду, что вместо folder может быть все, что угодно?

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.