我正在使用IIS的网站上工作。我有它正在努力删除扩展,但后来我被告知客户端是在尾随斜杠后删除的所有内容。
我首先想到这可能无法通过URL Rewrite实现,但我再一次对IIS知之甚少。
基本上,如果有人浏览网站并点击内部网页,则网址应保持不变,即顶级域名。
http://www.example.com
代替http://www.example.com/whatever
这是我到目前为止删除扩展程序。
<rule name="Remove PHP Extension">
<match url="(.*)\.php" />
<action type="Rewrite" url="{R:1}" />
</rule>
<rule name="Remove PHP Extension">
<match url=".*" negate="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="{R:0}.php" />
</rule>
非常感谢任何帮助
由于
答案 0 :(得分:0)
通过IIS执行此操作可能很困难,因为每个链接实际上必须在第一个实例中将用户导航到页面。然后你就被卡住了,除非你然后重定向到主页然后根据推荐人执行重写 - 这有点疯了。
相反,您可以使用javascript / jquery方法,这可能会更好。类似的东西:
$('a').on('click', function(ev){
ev.preventDefault();
$('body').load($(this).attr('href'));
})
这会占用任何锚并覆盖它,以确保内容被加载到当前页面。
不可否认,这是没有对href
指向页面ID等的任何条件检查,并且在考虑您可能已经拥有ajax调用时也不尽如人意。
它也没有考虑表单提交,但你可以在这里工作。
另一个问题是如果有人直接导航到某个页面会发生什么。
最后一种方法是将整个网站加载到Iframe中。令人讨厌,但如果这是客户想要的效果,则应用。你可以在每个页面上使用一些javascript来强制自己进入iframe,如果它还没有。
无论您采取哪种方法,您的客户都可以与任何搜索排名亲吻。这提醒我,不要忘记在你的robots.txt
中禁止所有