簡體   English   中英

如何阻止 Apache 解碼我的 URL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM