【问题标题】:.htaccess: How to remove subfolder's subfolder in URL?.htaccess:如何删除 URL 中的子文件夹子文件夹?
【发布时间】:2015-01-21 10:55:39
【问题描述】:

我正在尝试将此 URL www.domain.com/~username 重定向到 www.domain.com/~username/public,但从 URL 中删除 /public

这是我的.htaccess 文件

<IfModule mod_rewrite.c>

RewriteEngine on
RewriteBase /~username/
RewriteRule !^public/ public%{REQUEST_URI} [L]

RewriteCond %{THE_REQUEST} ^GET\ /public/
RewriteRule ^public/(.*) /$1 [L,R=301]

</IfModule>

但我收到此错误:

Not Found

The requested URL /~username/public/~username/ was not found on this server.

任何帮助表示赞赏!

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    你可以试试这个代码:

    RewriteEngine on
    RewriteBase /~username/
    
    RewriteCond %{THE_REQUEST} ^GET\ /public/ [NC]
    RewriteRule ^public/(.*)$ $1 [L,R=301,NE]
    
    RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
    

    【讨论】:

    • 是的!这非常有效。你能解释一下你添加了什么来完成这项工作吗?非常适合将来参考。
    • 主要问题是您使用了%{REQUEST_URI},它包含来自根目录的完整URI,而不仅仅是来自当前目录的相对URL,如$1 这里。
    猜你喜欢
    • 1970-01-01
    • 2019-12-21
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    • 1970-01-01
    • 2021-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多