刚
很长一段时间系统管理员,但第一次到这个优秀网站的海报,所以,请温柔。
我在REGEX尚未表现出色,并试图在我们的内部托管" mediawiki"上同时做两件事。现场。
我们正在运行一个非常简单的jane LAMP堆栈(centOS 5.x,Apache 2.x,PHP 5.x)。我们是根。我们使用的是/etc/httpd/conf.d/wiki.conf而不是使用.htaccess。物理路径是/ var / www / html / wiki /
我在下面的某些组合中得到了部分成功的结果,但我还不够好,无法在那里完成任务。我知道我希望这个网站上有一些mod_write铆钉。
我正在关注此方法https://www.mediawiki.org/wiki/Manual:Short_URL/Apache,以便将网址从www.example.com/wiki/index.php?=title=Garden_Store缩短为www.example.com/wiki / Garden_Store
仍允许使用www.example.com/wiki/index.php?=title=Garden_Store。 (我相信mediawiki可以同时使用两种风格的URL。如果不可能,那么我将被迫跳过短URL并使用带有变量的样式。)
最后,来自示例中的网址的字符串特殊字符,例如www.example.com/wiki/index.php?=title=Garden,_Store!应该是这个www.example.com/wiki/index.php?=title=Garden_Store。
另一个例子可能是www.example.com/wiki/index.php?=title=Garden_Store,_Inc。应该是www.example.com/wiki/index.php?=title=Garden_Store_Inc
最后一个例子,我们要确保我沟通得好,会得到这个" / title = Garden%20Store,%20Inc"但是想要这个" /index.php?title = Garden%20Store%20Inc"据我所知,这些空格被mediawiki内部的下划线所取代。
非常感谢你们为这位新人带来了最后一点到终点线。
干杯。
杰森
答案 0 :(得分:0)
以下规则应符合您的要求:
RewriteRule ^(.*)\ (.*)$ $1\_$2 [L]
RewriteRule ^(.*)[^a-zA-Z0-9\/\._](.*)$ $1$2 [L]
第一条规则确实用下划线替换空格,另一条线条剥离您不想留在结果URL中的所有字符。请注意,如果需要,您可能需要添加更多内容。