Я просто изучаю вещи mod_rewrite и regex, и я пытаюсь передать переменные с любым именем, с любым количеством переменных и значений, в сценарий и перенаправить их в другой сценарий.
вот что у меня есть:
RewriteEngine on
RewriteRule ^script\$(.*[\])? anotherscript?ip=%{REMOTE_ADDR}&$1 [L]
Это все работает, за исключением того, что одним из параметров, которые я передаю, является URL, а // после http: // всегда сокращается до одной косой черты.
например, я делаю
скрипт $ URL = http://www.stackoverflow.com
затем перенаправляет на:
anotherscript ф = 127.0.0.1 & URL = HTTP: /www.stackoverflow.com
и второй сценарий заглушает одиночную косую черту.
Я понимаю, что сохранение двойной косой черты - полная противоположность тому, что люди обычно делают с mod_rewrite. Есть ли способ сохранить двойную косую черту?
EDIT : решение найдено с помощью Gumbo.
RewriteCond %{THE_REQUEST} ^GET\ (.*)/script\$([^\s]+)
RewriteRule ^script\$(.*) anotherscript?ip=%{REMOTE_ADDR}&%2 [L]
Я должен был добавить это (. *) Перед / script на RewriteCond, как только я это сделал, он избавился от 404 ошибок, и тогда это был просто вопрос прохождения совпадений.