.htaccess - 使用 mod_rewrite 将假目录中的文件映射到实际目录

.htaccess - Map files inside fake directory to actual directory using mod_rewrite

在该网站上,学生将获得 link 登录名,其中 url 中包含学校名称。校名有无限可能。需要发生什么我需要重写

example.com/schoolname/anyfilename

到实际文件

example.com/pages/anyfilename?school=schoolname

学校名称可以是任何名称。

关于如何使用 .htaccess 文件实现此目的的任何建议?


编辑:我还需要重写子目录:

example.com/schoolname/directory/subdirectory/file

映射到

example.com/pages/directory/subdirectory/file?school=schoolname

我关于 "pages" 的问题的意思是说,如果您重写所有内容,您将进入重定向循环 = 错误 500。对于初学者,我建议仅在 uri 未指向时重写到现有文件或文件夹。

也就是说,这是我要使用的 .htaccess

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)/(.*)$ /pages/?school= [L]

编辑:为了安全起见,我会在 RewriteRule 之前再添加一个 RewriteCond

RewriteCond %{REQUEST_URI} !^/pages