我有一堆文件名为file.txt?x=1&y=2
,位于apache目录中。我希望http://example.net/sub/file.txt?x=1&y=2
请求提供这些文件,而不是尝试使用查询路径http://example.net/sub/file.txt
显示x=1&y=2
。
如果可能,我还希望能够提供file.doc
(没有任何问号)以及使用正确编码的文件名(即http://example.net/sub/file.txt%3Fx=1&y=2
)提供请求。
如何使用mod_rewrite配置子目录中的.htaccess文件?显而易见的规则
RewriteRule ^.*$ $0?%{QUERY_STRING}
导致直接直通,因为mod_rewrite将?
视为查询字符串。
答案 0 :(得分:0)
将问号编码为%3F
并用反斜杠进行掩码:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^.+$
RewriteRule ^[^?]*$ $0\%3F%{QUERY_STRING}
RewriteCond
确保没有查询字符串的网址不会附加问号。 RewriteRule
仅在它们没有任何正确编码的问号时匹配。