【发布时间】:2016-12-16 06:33:37
【问题描述】:
我是 Apache 的一个极端新手,但我非常努力并尽我所能去学习。但是,我遇到了一个问题,尽管我已经进行了广泛的搜索(过去 3 个多小时尝试了不同的方法以使其正常工作,哈哈),但我仍然无法找到与我完全一样的东西需要。但是,(我认为)对于比我更精通的人来说,这应该是一个非常简单的问题。
我需要的是一个简单的 RewriteRule,它将采用 URL (https://sample.example.com/login.htm?page=%2F),并在访问时将其重定向/更改为“https://sample.example.com/login.htm?page=%2Fui2.htm)。我尝试过重写规则、重定向、条件等....但我所做的一切都没有完美地到达那里。我觉得我真的,真的,真的很接近,但我不能完全跨过最后一步。这是我在这个网站匹配的虚拟主机文件中拥有的内容:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName sample.example.com
ServerAdmin webmaster@localhost
SSLCertificateFile /etc/letsencrypt/live/sample.example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sample.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
RewriteEngine on
RewriteRule "^/login\.htm$" "/login.htm?page=%2Fui2.htm" [R,L]
ProxyRequests Off
ProxyPreserveHost On
<Location />
ProxyPass http://192.168.x.x:38374/
ProxyPassReverse http://192.168.x.x:38374/
</Location>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
</IfModule>
(上面的内部IP和域名明显被屏蔽了)
我知道重写的输入文本可以肯定地工作,只是重写的部分失败了。一切正常,除了它将我重定向到https://sample.example.com/login.htm?page=Fui2.htm(即它删除了“%2”部分)。这就是我的问题。
【问题讨论】:
-
1 次尝试。保持原样并使用 B 和 NE 标志。
[NE,B,R,L]
标签: regex apache ubuntu mod-rewrite webserver