Правило перезаписи IIRF для IIS7
Я использую IIRF v2.1 для переписать правило
я пишу по такому правилу, но оно не работает
RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L]
если я буду использовать следующий URL
HTTP: // локальный / прод / 22 / новый товар-
Мне нужен реальный URL-адрес: http://localhost/prod.php?iid=22
да рабочая версия есть
RewriteRule /^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ /$1.php?iid=$2 [QSA,L], но проблема здесь во всех стилях и включаемых файлах не включены
Спасибо
3 ответа
Просто напишите URL, как это
RewriteRule ^/(prod|pag|staf)/([A-Za-z0-9-]+)/?$ /$1.php?iid=$2 [QSA,L]
и поставить / перед вашими таблицами стилей и другими включает
лайк
если ваша старая таблица стилей включена, как это
style/style.css
изменить это, чтобы
/style/style.css
то же самое для изображения и ссылок. надеюсь, что это будет работать нормально.
Ваше регулярное выражение не позволяет новому элементу следовать за последним слешем.
RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/?$ $1.php?iid=$2 [QSA,L]
Последовательность /?$, Которая завершает шаблон, говорит... косая черта (может быть), а затем конец строки. Ваш URL, однако, не заканчивается косой чертой. Он заканчивается косой чертой и текстом "new-item".
Регулярное выражение, которое захватывает , было бы что-то вроде этого:
RewriteRule ^(prod|pag|staf)/([A-Za-z0-9-]+)/? $1.php?iid=$2 [QSA,L]
... в котором говорится, что вам все равно, что будет после необязательного слэша, и поскольку вы используете QSA, любая строка запроса в исходном URL-адресе добавляется к исходящему URL-адресу.
Но это в основном отбросило бы часть "нового элемента" входящего URL-запроса, что я не уверен, что вы хотите сделать.
Если ваши URL-адреса всегда будут содержать цифры, то слаг, это регулярное выражение получит каждую часть:
^(prod|pag|staf)/([0-9]+)/([A-Za-z0-9-]+)/?