我想重写以下网址:
public void SaveFile(HttpListenerContext context)
{
// Get the data from the HTTP stream
var body = new StreamReader(context.Request.InputStream).ReadToEnd();
var xmlDocument = new XmlDocument();
xmlDocument.LoadXml(body);
xmlDocument.Save("Settings.xml");
}
要:
https://www.example.com/tools/tool.php?id=predict-backlinks
正如此处所示:URL Rewriting for sub-folder
现在工作网址为https://www.example.com/tools/predict-backlink
以下代码工作正常,但{URL}中添加了https://www.example.com/tools/tool/predict-backlink
。我希望它在URL中没有tool
的情况下工作。
tool
答案 0 :(得分:0)
此规则应该为您完成:
RewriteEngine On
RewriteCond %{QUERY_STRING} id=(.+) [NC]
RewriteRule ^(.*)$ https://www.example.com/tools/%1? [R=301,NC,L]
这样做会抓住您的查询id=
,并且使用RewriteRule会使用%1
将其附加到您网址的末尾。
?
可以阻止原始查询出现在最后。整个重写使用301重定向完成。
确保在>>测试之前清除缓存。
修改强>
感谢您更新问题,现在更清楚了。它添加tool/
的原因是因为RewriteRule前缀^tool/(.*)
的这一部分。你自己添加它。
只需从RewriteRule中删除tool/
即可,无需添加tool
即可。
RewriteRule ^(.*) tool.php?id=$1 [L]