[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Преобразовать строку
Страницы: 1, 2
Kusss
Помогите преобразовать входную строку
/pht/callback?oauth_token=hA29SIGxeUJYetoh&oauth_verifier=2yV9udWQr7yFXGAJ
в строку, которую поймет роут
/pht/<oauth_token>/<oauth_verifier>

сделал вот так, но что-то не пашет
RewriteRule ^pht/callback?oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$  pht/$1/$2 [L]
brevis
Тебе, наверное, нужно просто редирект сделать.

А если с RewriteRule -- то что-то такое мудрить:
RewriteCond %{REQUEST_URI} ^pht/callback$
RewriteCond %{QUERY_STRING} ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$
RewriteRule ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$ pht/%1/%2 [L]
(сам сейчас это проверить не могу)


_____________
Чатик в телеге
killer8080
что то типа
RewriteCond %{THE_REQUEST} pht/callback\?oauth_token=(\w+)&oauth_verifier=(\w+)
RewriteRule ^pht/callback$ pht/%1/%2 [L]


UPD опередили user posted image
Kusss
что-то не хочет , вот полный код
php_value opcache.revalidate_freq 0
AddDefaultCharset UTF-8
php_flag display_errors On

RewriteEngine On

Options -Indexes


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_URI} ^pht/callback$
RewriteCond %{QUERY_STRING} ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$
RewriteRule ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$ pht/%1/%2 [L]

RewriteRule !^(p/|favicon.ico|robots.txt|sitemap.xml|sitemap.xml.tgz) index.php [L]
brevis
Второй вариант попробуй smile.gif
Теоретически должно взлететь.

_____________
Чатик в телеге
killer8080
Цитата (Kusss @ 27.09.2017 - 10:29)
что-то не хочет

мой вариант пробовал?

Цитата (Kusss @ 27.09.2017 - 10:29)
RewriteCond %{REQUEST_URI} ^pht/callback$

Цитата (Kusss @ 27.09.2017 - 10:29)
RewriteRule ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$  pht/%1/%2 [L]

это не будет работать,
1 %{REQUEST_URI} содержит полный ури с гет параметрами,а маска жестко ограничена
2 RewriteRule не работает гет параметрами.
killer8080
Цитата (Kusss @ 27.09.2017 - 10:10)
Помогите преобразовать входную строку
/pht/callback?oauth_token=hA29SIGxeUJYetoh&oauth_verifier=2yV9udWQr7yFXGAJ
в строку, которую поймет роут
/pht/<oauth_token>/<oauth_verifier>

а почему нельзя сразу формировать урл в нужном виде?
Kusss
потому что он приходит CallBack_ом с другого сервера (авторизация для API)
Вариант killer8080 тоже не работает sad.gif
Kusss
Если есть 5 минут времени и желание поковыряться(помочь), могу дать доступ по виверу.
killer8080
Цитата (Kusss @ 27.09.2017 - 10:40)
Если есть 5 минут времени и желание поковыряться(помочь), могу дать доступ по виверу.

не нужно,я сейчас у себя протестю smile.gif
killer8080
Kusss
у меня работает этот код
RewriteCond %{THE_REQUEST} pht/callback\?oauth_token=(\w+)&oauth_verifier=(\w+)
RewriteRule ^pht/callback$ pht/%1/%2 [L]


выделенное красным тут было лишнее
Цитата (Kusss @ 27.09.2017 - 10:29)
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d


RewriteCond %{REQUEST_URI} ^pht/callback$
RewriteCond %{QUERY_STRING} ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$
RewriteRule ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$  pht/%1/%2 [L]


покажи полный код с моими правилами
brevis
Kusss, если что -- вот так еще попробуй:
RewriteCond %{REQUEST_URI} ^/pht/callback$
RewriteCond %{QUERY_STRING} ^oauth_token=([A-z0-9-]+)&oauth_verifier=([A-z0-9-]+)$
RewriteRule . pht/%1/%2 [L]


Тестер говорит, что вроде бы валидно http://htaccess.mwl.be?share=a262cf05-dffa...74-b9492caac6f4


_____________
Чатик в телеге
killer8080
Цитата (killer8080 @ 27.09.2017 - 10:47)
выделенное красным тут было лишнее

это условие для правила
Цитата (Kusss @ 27.09.2017 - 10:29)
RewriteRule !^(p/|favicon.ico|robots.txt|sitemap.xml|sitemap.xml.tgz) index.php [L]

после твоей вставки там, оно стало применяться к другому условию соответственно.



Спустя 7 минут, 3 секунды killer8080 написал(а):
Цитата (Kusss @ 27.09.2017 - 10:10)
[A-z0-9-]

кстати так диапазоны задавать не правильно, нужно было [a-zA-Z0-9-], или просто \w



Спустя 2 минуты, 41 секунда killer8080 написал(а):
пардон, дефис не входит в \w
поэтому
RewriteCond %{THE_REQUEST} pht/callback\?oauth_token=([\w-]+)&oauth_verifier=([\w-]+)
RewriteRule ^pht/callback$ pht/%1/%2 [L]
Kusss
Цитата
после твоей вставки там, оно стало применяться к другому условию соответственно.
Это преобразование мне нужно как исключение.
Попробовал все варианты, но так и не заработало. Видать что-то не так делаю.

на какую страницу в результате будет ссылаться преобразованная ссылка ?
По моему роуту ничего нет (404 ошибка)
'/pht/<oauth_token>/<oauth_verifier>' => 	'pht/callback',
Kusss
заработало. Правда ссылку пришлось переписать вот в такой вид
/pht/callback.php?oauth_token=hA29SIGxeUJYetoh&oauth_verifier=2yV9udWQr7yFXGAJ
ну и создать файл /pht/callback.php

Жаль что в роут завернуть не получается sad.gif
Быстрый ответ:

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