htaccess根据url中的字符串重定向到域

时间:2016-01-19 10:47:58

标签: regex .htaccess redirect

我们有一个从CMS生成内容的网站。问题是人们在没有 $stmt->execute(); $message=$stmt->fetch(); 的情况下添加了指向其网站的链接,因此所有链接都以错误的方式生成。

例如:http://www.example.com/ec/shefaliaxena/eventupdate/www.shefalisaxena.com

我想要做的是在最后一次删除后获取数据,并使用正则表达式检查它是否是有效域,如果它是有效域,则将其重定向到该域,否则什么都不做。

我能够使用正则表达式(http://)在最后一次斜杠后提取数据,但想知道如何实现此重定向。

我可以通过编码轻松完成此操作,但我想从[^/]+$文件本身处理此问题,这样就不会增加服务器的负担。

1 个答案:

答案 0 :(得分:0)

尝试执行此操作可能遇到的一个问题是,有效的文件名通常看起来很像有效的域名,所以在尝试之前,您需要确保看起来像域名的内容不是有效文件。转发网址:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /(([A-Za-z0-9-]+\.)+[A-Za-z]{2,6})$ http://$1/ [L,NC,R=301]

如果您从用户输入的数据生成URL,我肯定会考虑在那里添加协议而不是这样做。