作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 TIdHTTPServer
的 Indy HTTP 服务器零件。我希望像 Apache 和 IIS 一样使用 URL 重写模块重写浏览器 URL。
例如:如果有人去https://www.mydomain2.com
我希望浏览器中的 URL 显示 https://www.mydomain1.com
.
我很确定使用 Javascript 的 history.pushState
不是答案。
我尝试过使用 Javascript 的 history.pushState('data to be passed', 'Title of the page', '/www.mydomain1.com');
作为备选。但是,当我转到 https://www.mydomain2.com
它附加到当前 URL,如 https://www.mydomain2.com/www.domain1.com
.
我的理解是history.pushState
由于安全问题,不允许完整的 URL 替换。
我的服务器 header 是(我只是在黑暗中拍摄):
aResponseInfo.CustomHeaders.AddValue('Access-Control-Allow-Origin','*');
aResponseInfo.CustomHeaders.AddValue('Access-Control-Allow-Methods','*');
aResponseInfo.CustomHeaders.AddValue('Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept, Authorization');
aResponseInfo.CustomHeaders.AddValue('Cache-Control', 'no-cache');
最佳答案
从服务器端执行此操作的唯一方法是指示客户端请求新 URL。您可以使用 TIdHTTPResponseInfo.Redirect()
为此目的的方法,例如:
if ARequestInfo.Host = 'www.mydomain2.com' then
AResponseInfo.Redirect('https://www.mydomain1.com');
https://www.mydomain2.com
。不再,它会自动导航到
https://www.mydomain1.com
反而。
https://www.mydomain2.com
但显示
https://www.mydomain1.com
,这只能通过操纵浏览器地址栏的客户端脚本来完成。
关于delphi - 如何用 Indy 的 TIdHTTPServer 组件替换浏览器 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53861620/
我是一名优秀的程序员,十分优秀!