带路径名的htaccess重定向问题

时间:2014-07-06 14:37:58

标签: .htaccess drupal

我有一个像这样的路径名结构:

domainname.com/categoryname / *

我需要将它们重定向到 domainname.com/newname/categoryname / *

这不起作用,因为这会产生无限循环 RewriteRule ^ foldername(。*)$ http://www.domainname.com/newname/categoryname $ 1 [R = 301,L]

注意:“categoryname”实际上不是一个文件夹;它是使用干净URL的路径名的一部分。 “newname”是文件夹中的新安装。我只从根目录中的主安装中删除一些项目到文件夹中的安装。

1 个答案:

答案 0 :(得分:0)

请改用:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(?!newname)([^/]+)/([^/]+)/?$ newname/$1/$2 [R=301,L]
  • ^锚点断言我们位于字符串的开头
  • (?!newname)声称接下来的内容不是newname,而是避免循环
  • ([^/]+)会将类别名称捕获到第1组
  • /与文字/
  • 相匹配
  • ([^/]+)与名称匹配
  • /?匹配最后的可选/
  • $锚点断言我们位于字符串的末尾