mod_rewrite ... как сделать??

12
A
На сайте с 08.03.2003
Offline
203
1733

господа!

есть динамический линк:

http://localhost/all.php?link=factory

как должен выглядеть файл .htaccess ???

нашел пример:

для линка:

http://localhost/index.php?show=news&year=2002&month=9&day=7

что бы преобразовать в этот:

http://localhost/news/2002/9/7/

надо сделать:

Изменить файл .htaccess следующим образом:

...

RewriteEngine On

# добавляем

RewriteRule ^([a-z]+)/([0-9]*)/([0-9]*)/([0-9]*)/$ /index.php?show=$1&year=$2&month=$3&day=$4

А как надо изменить файл .htaccess для линка: http://localhost/all.php?link=factory . И еще что делать, если например есть еще линк: prod.php?1=2 и name.php?3=5

Славгородский Алексей,
Ваш Партнер – создание и продвижение сайтов (http://vashpartner.ru/)
InSAn
На сайте с 13.01.2003
Offline
60
#1
http://localhost/all.php?link=factory

RewriteRule ^all/link/factory/?$ /all.php?link=factory

и тогда вызывать, как http://localhost/all/link/factory/

есть еще линк: prod.php?1=2 и name.php?3=5

RewriteRule ^prod/1/2/?$ prod.php?1=2

RewriteRule ^name/3/5/?$ prod.php?3=5

ADPRO - Мы знаем, что Вам нужно! (http://adpro.ua)
A
На сайте с 08.03.2003
Offline
203
#2
Как писал InSAn

RewriteRule ^all/link/factory/?$ /all.php?link=factory

и тогда вызывать, как http://localhost/all/link/factory/

но ведь тут много присвоенно переменных ..

типа http://localhost/all.php?link1=factory1

типа http://localhost/all.php?link2=factory2

и так далее ...

как быть с этим ..

не каждое же прописывать :)

[Удален]
#3

RewriteEngine On

RewriteBase /
RewriteRule ^(.*)-(.*)-(.*).html$ $1.php?$2=$3 [L]

Тогда по адресу http://localhost/all-link-factory.html будет находиться http://localhost/all.php?link=factory, по адресу http://localhost/prod-1-2.html - http://localhost/prod.php?1=2 и т. п. В таком случае, очевидно, недопустимы дефисы в названии скриптов и названиях/значениях параметров.

Если я не так понял задачу, изложите яснее.

Разумеется, дефисы в правиле можно заменить слешами, если угодно.

B
На сайте с 29.03.2003
Offline
147
#4

сорри что поднимаю тему по новой но так и не нашёл что мне нуно а именно можно реализовать

http://localhost/all.php?link=factory не в http://localhost/all/link/factory/

а в

http://localhost/factory или http://localhost/factory.html

RewriteRule ^/factory?$ /all.php?link=factory это будет правильно ?

S
На сайте с 24.11.2003
Offline
4
#5

Правильно, можно еще вот так для удобства

RewriteRule ^/(.*)$ /all.php?link=$1

D
На сайте с 21.09.2003
Offline
53
#6

Можно использовать очень простой прием - делать mod_rewrite любого адреса на один и тот же файл (например, index.php), а уж в нем разбирать адресную строку на параметры и делать include соответствующих файлов. Вам не нужно будет заморачиваться новыми правилами в .htaccess для новых адресов - в PHP-скрипте это делать намного легче и удобнее.

С уважением, DEkart Блог о Ruby on Rails (http://railorz.ru/) | Создание сайтов от 6999 рублей (http://lite.itvektor.ru)
svarog
На сайте с 14.01.2004
Offline
134
#7

Правильно ли будет для того, чтобы http://localhost/?page=order выглядел так: http://localhost/page/order/

прописать:

RewriteRule ^(.*)/(.*).$ /index.php?$1=$2 [L]

C
На сайте с 19.09.2001
Offline
120
#8

Нет, правильно так:

RewriteRule ^(.*)/(.*)$ /index.php?$1=$2 [L]

С уважением, Владимир Чернышов. (не)?путевые заметки (http://chernyshov.kiev.ua/)
svarog
На сайте с 14.01.2004
Offline
134
#9

запрос: http://localhost/example/foto/main.html

.htaccess:

RewriteRule ^example/(.*)/(.*).html$ /index.php?example=$1&pageurl=$2 [L]

При таком запросе все работает.

А как сделать, чтобы при таком: http://localhost/example/foto/ браузер выводил index.html.

svarog
На сайте с 14.01.2004
Offline
134
#10

Меня наверное не поняли, или посчитали, что вопрос глупый :)

Объясню подробнее, на случай если не поняли :)

.htaccess:

RewriteRule ^example/(.*)/(.*).html$ /index.php?example=$1&pageurl=$2 [L]

У меня почему-то при запросе: http://localhost/example/foto/ выходит не http://localhost/example/foto/index.html, как и должно быть, а страница 404.

Если дело не в mod_rewrit, то наверное в скрипте?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий