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

时间:2015-02-04 20:24:55

标签: apache mod-rewrite

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

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

1 个答案:

答案 0 :(得分:1)

关于"页面的问题"这意味着,如果你重写所有内容,你将进入一个重定向循环=错误500.对于初学者,我建议只在uri没有指向现有文件或文件夹时进行重写。

话虽如此,这是我将使用的.htaccess

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

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

RewriteCond %{REQUEST_URI} !^/pages