Я пишу .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, но это тоже не сработало.