Я пытаюсь создать некоторые правила htaccess для сопровождения интеграции, которую я строю
Я пытался использовать ответы, найденные в разных темах, и даже комбинировать их, но, к сожалению, все не так. Код ниже является самым близким, который я получил, но это также не 100%. Пожалуйста, обратите внимание, мой htaccess-fu не велик. Я могу делать стандартные вещи, но переписывание всего URL на этом уровне мне не под силу, несмотря на попытки учиться. Я надеюсь, с помощью я устраню этот пробел.
Это мой текущий код
RewriteEngine On
RewriteOptions IgnoreInherit MergeBase
# next 2 lines define a dynamic rewrite base
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]
# end of dynamic rewrite base
# Rewrites to HTTPS for all URLS and removes.php from file names allowing for "pretty links" i.e. /path/to/file/
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
Установка такова:
- example.com / содержит установку сайта Wordpress
- example.com / payment / содержит созданное мной приложение
- inside example.com/payment/ - это index.php, файл процессора customer.php и файл ошибок с именем error.php. Он также содержит несколько каталогов
- Для этого примера есть папка / payment / thankyou /, которая содержит файлы index.php и 3 thankyou. эта папка содержит htaccess только с RewriteEngine On и RewriteOptions Inherit - это предпочтительно, потому что я хотел бы использовать основной htaccess из / payment / для указания всего и просто использовать файлы наследования для любых дополнительных (под) каталогов.
Мне нужно следующее из этого файла:
1) База динамического перезаписи - папка, содержащая интеграцию, может изменить имя или в дальнейшем, я могу расширить интеграцию и потребовать дополнительные каталоги на верхнем уровне. Мне нужен htaccess, чтобы получить это сам. например example.com/payment/ или example.com/portal/ Также в папке / payment / мне нужно, чтобы она охватывала все каталоги, на которые будут перемещаться. (первое существо / спасибо)
2) Все http для отправки на https - это приложение принимает личные данные - необходимо использовать SSL
3) полоса www. выход должен быть только https://example.com/payment/
4) У всех php-файлов необходимо удалить расширение (полезно, если это можно настроить для нескольких типов файлов, например, .html)
5) example.com/payment & example.com/payment/error & example.com/payment/thankyou & example.com/payment/thankyou/annually - все они должны иметь косую черту. (не важно, каталог это или файл. Все URL должны заканчиваться на /)
6) в настоящее время, если мне нужно ввести что-то вроде example.com/payment/index.php или /payment/error.php, я получу файл, который не найден - это должно быть удаление расширения .php и добавление косой черты.
7) в дополнение к # 6, если я перехожу к -> /payment/thankyou/index.php/ (завершающий слеш после расширения), он также загружает страницу, но расширение .php должно быть удалено.
8) для файлов с удаленным расширением, например, error.php при вводе URL-адреса, подобного этому, -> example.com/payment/error перенаправляет на example.com/error/ вместо простого добавления косой черты, он удаляет «URL-адрес» в части оплаты - кажется, это может быть основной проблемой?
9) Мне нужно это, чтобы НЕ конфликтовать с Wordpress.
Файл работает до некоторой степени, но любая попытка улучшить ситуацию не сработала. Гадание не продвигает меня дальше, поэтому я надеюсь, что кто-то с хорошим опытом сможет сказать мне, что здесь не так или нет
Заранее спасибо всем, кто может мне помочь.