.htaccess, как получить полный URL - PullRequest
0 голосов
/ 15 ноября 2018

Я пишу .htaccess перенаправление / переписать, который использует регулярное выражение, которое необходимо, чтобы «увидеть» полный URL, что-то вроде:

Входной URL: http://www.my.site.com/demo/home/

С моимперенаправить / переписать Я хочу сделать следующее:

1) Change http to https
2) Remove www
3) Inject Symfony2 'parts' into the URL, when missing, i.e,: /app_dev.php/contoller
4) Add /home, if missing
5) Move the /demo subdirectory to the end of the URL, after /home
6) Remove the ending /, if present

Выходной URL: https://my.site.com/app_dev.php/contoller/home/demo

Я пробовал несколько вещей, которые я видел в примерах, которые я нашел, когда я гуглил.htaccess перенаправление и .htaccess переписать, но пока мне кажется, что ничего не работает.Я полагаю, что это потому, что я не использую правильную% {variable} для просмотра всего URL, включая часть http: // или https: // и части подкаталогов, которые идут после домена.

#                                                 $1                 $2                  $3                           $4      $5
#   RedirectMatch ^(?:http(?:s)?://)?(?:www\.)?my(\.dev)?\.site\.com(/[a-z0-9]+)?(?:/app(_dev)?\.php)?(?:/contoller)?(/home)?(/[^/]+)?(?:/)?$ https://my$1.site.com/app$3.php/controller/home$2$5
#                                                          $1                 $2                  $3                            $4      $5
RewriteCond %{REQUEST_URI} ^(?:http(?:s)?://)?(?:www\.)?my(\.dev)?\.site\.com(/[a-z0-9]+)?(?:/app(_dev)?\.php)?(?:/controller)?(/home)?(/[^/]+)?(?:/)?$
RewriteRule ^(.*)$ https://my$1.site.com/app$3.php/controller/home$2$5 [L]

Моей первой идеей было использовать команду RedirectMatch, потому что она казалась самой сжатой и прямой командой, но когда это не сработало, я переключился на команды RewriteCond / RewriteRule, но это тоже не сработало.

...