Я нашел вопрос, похожий на мою проблему ( Регулярное выражение для запроса URL ), но не смог решить мою проблему.
Поэтому у меня возникли проблемы с регулярными выражениями в HTACCESS.
Итак, что у меня на сайте есть:
ROOT: (мой веб-корень находится в подпапке 'sites')
/sites / index.php и другие файлы
/ sites / sites / sample_folder_name /
Теперь я хотел бы переписать URL-адрес:
/ sites / sites / sample_folder_name / file_name.php
to:
/ sites / file_name.php ? siteredirect = sample_folder_name
Помните: если URL содержит какие-либо параметры запроса, то их также необходимо переписать, например:
Пример:
/ sites / sites / sample_folder_name / file_name.php ? cat_id = 1 & user = 2
to:
/ sites / file_name.php ? cat_id = 1 & user = 2 & siteredirect = sample_folder_name
Параметры должны быть неизвестны вместо user и cat_id.Это могут быть любые параметры.Означает, что все, что написано после .php, также должно входить в URL.
Означает:
/ sites / sites / sample_folder_name / file_name.php ? If_any_parameters
затем:
/ sites / имя_файла.php ? If_any_parameters & siteredirect = sample_folder_name
в противном случае:
/ sites / file_name.php ? Siteredirect = sample_folder_name
В настоящее время перезапись работает отлично, но я не могу заставить их работать с параметрами.
ЧтоУ меня в HTACCESS прямо сейчас:
RewriteRule ^sites\/([0-9A-Za-z_]+)\/([0-9A-Za-z_]+)\.php(.*)$ $2.php(?(?=$3)$3&)siteredirect=$1 [L]
RewriteRule ^sites\/([0-9A-Za-z_]+)\/$ index.php?siteredirect=$1 [L]
После этого он дает мне 404.
Пожалуйста, помогите ... Где я делаю это неправильно!