htaccess正则表达式问题 - 301将空格重定向到破折号

时间:2011-07-05 16:42:46

标签: regex .htaccess mod-rewrite http-status-code-301

我只是想知道htaccess mod重写正则表达式能够将包含空格的任何url重定向到相同的URL,但是替换空格的短划线。 例如

我希望它能重定向来自

的任何请求
mysite.com/test/dl/1/the file name.html

mysite.com/test/dl/1/the-file-name.html

你有什么方法可以做到吗?

1 个答案:

答案 0 :(得分:1)

是的,你可以,如果:

1)你硬编码这样的规则(意思是,你事先知道文件名):

RewriteRule ^test/dl/1/the\sfile\sname\.html$ /test/dl/1/the-file-name.html [R=301,L]

2)你可以使用RewriteMap和外部重写程序(Perl / bash / etc脚本) - 详见Apache's manual(但我个人认为这不是一个很好的选择)。

否则你必须以某种方式自己做(例如在你自己的网站脚本中)。