如何删除apache url中一个单词后的所有内容并重写

时间:2015-08-14 14:07:33

标签: regex apache mod-rewrite

我需要一些关于正则表达式和Apache重写的帮助,我还没有理解正则表达式模式,我看到很多以前关于在php中做类似事情的问题(我知道了很多),但我不能似乎将其转换为重写规则。

我曾经在我的摄影网站上使用Smugmug,然后我就自己做了,Smugmug在每个网址的末尾添加了一些随机字母,使其更加"private",就像这样"Blog/Jenny-Easter-Pictures/i-nbRcmgv"

我保留了相同的文件夹结构,除了随机字符,因此,谷歌,可能还有我的旧旧客户端因为找到"i-nbRcmgv"文件夹而找不到错误

我希望apache删除url中"/i-"之后的所有内容,需要包含斜杠,以防我有一个文件夹名称,当然还有i-。 / p>

听起来可能很容易,但就像我说的那样,正则表达式让我感到困惑,我不会用它来学习它并记住下一次哈哈。

我的conf中已经有类似的东西了,所以我对如何做有一个大概的想法,但是我在本网站上从其他人的回答问题中复制了它。

RewriteRule ^/downloads/(.*)/$ /download.php?DIR=$1 [QSA]

1 个答案:

答案 0 :(得分:1)

你需要像

这样的东西
RewriteEngine on
RewriteRule ^(.*)/i-.*  $1  [QSD]

如果要在"?"之后保留查询部分,请删除[QSD]。在网址中(例如Blog/Jenny-Easter-Pictures/i-nbRcmg?a=b应该成为Blog/Jenny-Easter-Pictures?a=b