[英]How can I stop Apache from decoding my URL
我有一個重定向到另一個的網站。
這是.htaccess
文件的內容:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} (optout|optin|greenarrow|gocharge|subscriber)
RewriteRule ^(.*)$ http://example.com/campaign%{REQUEST_URI} [R=301,NE,L]
RewriteRule ^(.*)$ http://example.com/campaign/urlshortener?id=$1 [R=301,NE,L]
我的問題是,當我傳入時:
http://redirectsite/d7cd5c%7B%7Bpurl%7C6%7D%7D
它把我送到:
http://example.com/campaign/urlshortener?id=d7cd5c{{purl|6}}
我需要它寄給我:
http://example.com/campaign/urlshortener?id=d7cd5c%7B%7Bpurl%7C6%7D%7D
原因是Tomcat 9有一個不再接受某些字符的庫。 所以我在當前狀態下收到以下錯誤:
java.lang.IllegalArgumentException:在請求目標 [
/campaign/urlshortener?id=d7cd5c{{purl|6}}
] 中發現無效字符。 有效字符在 RFC 7230 和 RFC 3986 中定義
我需要在.htaccess
文件中更改或添加什么?
B
標志應該能夠實現您在這里所需要的。
https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_b :
[B]
標志指示 RewriteRule 在應用轉換之前轉義非字母數字字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.