Php mod重写目录

Php mod重写目录,php,mod-rewrite,directory,Php,Mod Rewrite,Directory,我只能找到用于查询的mod rewrite示例/教程,所以有人可以帮我解决这个问题 我想要这个 http://website.tld/Folder1/Folder2/Folder3/Folder4/Folder5/File.exten 转化为 http://website.tld/Folder4/File.exten Folder4和Folder5是多个目录,而文件夹1-3保持不变。 此外,File.ext在重写过程中也应该是可更改的。 谢谢。这应该可以: RewriteRule ^(.*)

我只能找到用于查询的mod rewrite示例/教程,所以有人可以帮我解决这个问题

我想要这个

http://website.tld/Folder1/Folder2/Folder3/Folder4/Folder5/File.exten
转化为

http://website.tld/Folder4/File.exten
Folder4和Folder5是多个目录,而文件夹1-3保持不变。 此外,File.ext在重写过程中也应该是可更改的。 谢谢。

这应该可以:

RewriteRule ^(.*)/(.*)$ Folder1/Folder2/Folder3/$1/Folder5/$2 [QSA,NC]

我会用这样的方式:

RewriteRule ^([^/]+)/([^/]+)$ Folder1/Folder2/Folder3/$1/Folder5/$2 [QSA,NC]
([^/]+)
更好,因为
^(.*)/(.*)$
将匹配
http://website.tld/somedir/somedir2/somedir3/

Options +FollowSymlinks
RewriteEngine On
RewriteRule ^grab /public/files/download/download.php
此规则将转换此用户的URL

服务器端,进入


这里说:

如果用户只要求/Folder4/File.extn,您将如何计算Folder5的值?我想知道,文件夹总是一样的。如果不是,则可能会有一个更复杂的正则表达式来选择此结构。如果“Folder5”不总是在重写fil路径中,则可以将其忽略。不管怎样,只要在查询中使用类似“Folder4/Folder5”的内容,重写就可以让您访问该文件夹。因此,我在正则表达式中使用了(.*)而不是([^/]+)。