【问题标题】:Rewrite a folder based on another folder name using .htaccess使用 .htaccess 根据另一个文件夹名称重写文件夹
【发布时间】:2018-10-02 06:39:52
【问题描述】:

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !/students/
    RewriteRule ^uploads/(.*)/pictures/(.*)$ /uploads/new_folder/pictures/$2 [L]
    

    这应该可以解决问题。

    首先,我们启用重写引擎并将基础设置为 url 的 /-start。 然后我们说如果在原始位置没有找到folder or filename 并且 url 在我们想要重写的路径中没有学生。 然后将 folder1 编辑为 new_folder。

    在这种情况下,由于重写而不是重定向,客户端将看不到重写,但仍会在 url 中看到 folder1,而显示的文件位于服务器上的 new_folder

    我已经编辑了答案,因此 folder1 可以是动态的。我在这里假设您总是在路径中使用上传和图片。

    【讨论】:

    • 感谢您的回复,棘手的部分是文件夹 1 并不总是同名,它可能类似于文件夹 2、文件夹 3。我们需要根据条件将这些文件夹替换为 new_folder(其中包含 url 中的学生)。
    • @user3391137 我已经编辑了使用动态文件夹名称的响应。