В данный момент я просто сопоставляю цифры, буквы, тире и подчеркивания в моем файле .htaccess:
RewriteRule ^([A-Za-z0-9-_]+)/?$ index.php?folder=$1
Я также хочу сопоставить полные остановки в строке.Я не хочу использовать:
(.*)
Я пробовал:
([.A-Za-z0-9-_]+)
([\.A-Za-z0-9-_]+)
([\\.A-Za-z0-9-_]+)
([A-Za-z0-9-_\.]+)
Ничто из этого не работает .... как я могу избежать полной остановки, чтобы она соответствовалаполная остановка!
---------- Дополнительная информация ----------------
Например:
mydomain.com / groups / green / должен перейти на index.php? Folder = green
Кроме того, я переписываю субдомены поверх этого (я думаю, это вызывает осложнения)) ...
anotherdomain.com должен сопоставиться с index.php? Folder = anotherdomain.com
Я успешно переписал поддомен со следующим правилом:
# external group domain name
RewriteCond %{ENV:Rewrite-Done} !^Yes$
## exclude requests from myhost.com
RewriteCond %{HTTP_HOST} !^www\.myhost\.com
## allowed list of domain masking domains
RewriteCond %{HTTP_HOST} ^(anotherdomain.com|extra.domain.com|external.otherdomain.com)
RewriteRule (.*) /groups/%1/$1
Я думаю, что здесь кроется сложность.
---------------- Решение ----------------------
Несмотря на то, что я не нашел решения вышеупомянутой проблемы, я обошел ее, изменив первое перенаправление (которое сопоставляет внешние домены) с:
RewriteRule (.*) /groups/%1/$1
to:
RewriteRule (.*) /groups/external/$1&external_domain=%1
Вторая перезапись (в папке) может затем интерпретироватьПеременная «внешний домен» вместо папки.