Я только что перестроил и запустил сайт (назовем его example.com) и назначил субдомен legacy.example.com для старого сайт. Мне нужно разрешить людям доступ к истории заказов на старом сайте, но я не хочу, чтобы они просматривали продукты и разрешали доступ к тележке и кассе на старом сайте. Поэтому мне нужно перенаправить все, кроме Логина/выхода из системы страниц, на странице учетной записи, а страница поступления:.htaccess - перенаправить все страницы, за исключением 1 страницы и другой страницы, в зависимости от ее запроса.
Login page = page.php?pg=extranet&mode=login
Logout page = page.php?pg=extranet&mode=logout
Account page = page.php?pg=extranet
Order listing page = page.php?pg=extranet&mode=orderstatus
Receipt page = receipt.asp
Я баловаться с этим для большей части дня, и был по всему интернету и обратно и не может найти магическое сочетание «и» и «или» для условия. Возможно ли это, или мне нужно разбить его на несколько наборов условий/правил? Как мне это сделать?
RewriteCond %{REQUEST_URI} !^/receipt.asp [OR,NC]
RewriteCond %{REQUEST_URI} !^/page.asp [NC]
RewriteCond %{QUERY_STRING} !^pg=extranet [OR,NC]
RewriteCond %{QUERY_STRING} !^pg=extranet&mode=login [OR,NC]
RewriteCond %{QUERY_STRING} !^pg=extranet&mode=logout [OR,NC]
RewriteCond %{QUERY_STRING} !^pg=extranet&mode=orderstatus [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
Обратите внимание, что строка запроса переменные могут появляться в любом порядке, так что люди могут все еще получить доступ к странице, если они идут в 'page.php? Mode = логин и рд = extranet' и т.д. – Sumurai8