jav*_*pas 0 mod-rewrite wordpress permalinks apache-2.2
我在 ServerFault 上看到过这个上一个问题,我想要类似的东西,但我不确定如何完成它。
我想要的是从永久链接中删除所有斜杠,除了域名后面的斜杠。例如:
http://www.muycomputerpro.com/Actualidad/Especiales/La-Ciudad-Eficiente-Netapp
将被重定向到
http://www.muycomputerpro.com/ActualidadEspecialesLa-Ciudad-Eficiente-Netapp
我需要它来纠正Apache Web 服务器下我的 WordPress 博客上剩余的一些 404 错误。那么,正确的重写规则是什么?
由于 RewriteRule 以路径开头(因此我们无需担心域),您可以说的是要删除除第一个之外的所有斜杠,或者删除前面没有开头的斜杠细绳。
这在正则表达式中意味着使用负回顾,如下所示:
(?<!^)/
Run Code Online (Sandbox Code Playgroud)
其中(?<!...)是负面的后视语法,^表示字符串的开始。
所以在配置中它看起来像:
RewriteRule (?<!^)/ $1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)
这里有点猜测的一件事是$1表示空字符串 - 我之前没有用 mod_rewrite 做过这个,我找不到任何解释是否有“正确”的方法来替换空字符串,但是在其他正则表达式引擎中,使用未使用的反向引用将导致空字符串,所以应该没问题。(如果没有,我会看看是否""有效。)
哦,[...]部分是一个以逗号分隔的重写选项列表。该L是最后-他说:不处理其他规则(通常这是预期的行为),并且R=301是301(永久)重定向(指示蜘蛛新的URL来更新他们的记录)。有关重写选项的更多详细信息,请点击此处。
| 归档时间: |
|
| 查看次数: |
911 次 |
| 最近记录: |