我尝试从$('#myButton').on('click', function () {
//Do stuff in the .js file
});
重定向到m.subsub.subdomain.tld
。所以基本上,我想添加一个GET请求。现有的GET应该保持原样,subsub.subdomain.tld?m=true
到m.subsub.subdomain.tld?abc=def
。
我尝试了以下代码,但它不起作用:
subsub.subdomain.tld?abc=def&m=true
我试图理解RewriteEngine On
ReWriteCond %{HTTP_HOST} m.subsub.subdomain.tld
ReWriteCond %{REQUEST_URI} ^m/
ReWriteRule ^(.*)$ ?=m=true[L]
和ReWriteCond
是如何工作的,但我没有得到,所以我需要你的帮助。
答案 0 :(得分:0)
ReWriteCond %{HTTP_HOST} m.subsub.subdomain.tld ReWriteCond %{REQUEST_URI} ^m/ ReWriteRule ^(.*)$ ?=m=true[L]
这有很多问题:
REQUEST_URI
包含网址路径(以斜杠开头),因此我不确定您要将哪些内容与^m/
匹配?m.subsub.subdomain.tld
- RewriteCond
指令的第二个参数是正则表达式。点需要反斜杠转义以匹配文字点,否则它匹配任何字符。(.*)
捕获网址路径 - 这是必需的吗?在您的示例中不需要它。您的示例源和目标网址具有空的URL路径。?=m=true[L]
- =
之前您有错误的m
。您在RewriteRule
标记([L]
)之前缺少空格分隔符 - 这将被视为替换的一部分。R
标志或方案+主机名,因此将导致内部重写,而不是重定向。ReWriteCond
和ReWriteRule
应分别写为RewriteCond
和RewriteRule
。虽然这只是惯例,但这不是错误。请尝试以下内容:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^m\.subsub\.subdomain\.tld [NC]
RewriteRule ^ http://subsub.subdomain.tld?m=true [R=302,QSA,L]
现有的GET应保持原样,
m.subsub.subdomain.tld?abc=def
至subsub.subdomain.tld?abc=def&m=true
请注意,这将导致查询字符串相反。即。来自请求的现有查询字符串将被附加,而不是作为新查询字符串的前缀。那是问题吗?即。 ?m=true&abc=def
,而非?abc=def&m=true
。
这也是一个临时(302)重定向。只有在您确定它正常工作时才会将其更改为301(永久性)(如果这是永久性的)。