Я автоматизирую создание URL Rewrite в тестовой среде. Я настраиваю его с помощью Powershell в IIS 8.5
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site/App/MyApp/v1' -filter "system.webServer/rewrite/allowedServerVariables" -name "." -value @{name='HTTP_X_FORWARDED_FOR'}
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site/App/MyApp/v1' -filter "system.webServer/rewrite/rules" -name "." -value @{name='Add X-Forwarded-For Header';patternSyntax='Wildcard'}
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site/App/MyApp/v1' -filter "system.webServer/rewrite/rules/rule[@name='Add X-Forwarded-For Header']/match" -name "url" -value "*"
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location 'Default Web Site/App/MyApp/v1' -filter "system.webServer/rewrite/rules/rule[@name='Add X-Forwarded-For Header']/serverVariables" -name "." -value @{name='HTTP_X_FORWARDED_FOR';value='{REMOTE_ADDR}';replace='False'}
Это создает правило, однако приложение IIS не работает при попытке сделать запрос.
Выдает ошибку 500,52.
Однако, если правило отключено и включено в UI все нормально. Что происходит?
Mã PowerShell của bạn có lỗi đánh máy ở dòng cuối cùng HTTP_X_ORWARDED_FOR
phải là HTTP_X_FORWARDED_FOR
Trên IIS 10, điều này dẫn đến lỗi:
Lỗi HTTP 500.50 - Biến máy chủ "HTTP_X_ORWARDED_FOR" không được phép đặt. Thêm tên biến máy chủ vào danh sách biến máy chủ được phép.
Với PowerShell, bạn đang cập nhật ứng dụng applicationhost.config
chung, khi sử dụng GUI, các thay đổi sẽ được ghi vào tệp web.config. Tôi không biết tại sao điều đó lại khắc phục được sự cố của bạn. Tôi vẫn gặp lỗi tương tự như trước.
Sửa lỗi chính tả và nó sẽ hoạt động.