【问题标题】:Mod_Rewrite Trailing Slash Issue Problem/QuestionMod_Rewrite 斜杠问题问题/问题
【发布时间】:2023-03-19 14:30:02
【问题描述】:

我正在尝试将客户端锁定在我创建的 PHP 应用程序之外,但仍然允许他们使用以下方式“虚拟”访问文档根目录:

RewriteCond %{DOCUMENT_ROOT}/ftp/%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/ftp/%{REQUEST_URI} -d
RewriteRule ^(.+) /ftp/$1 [L]

当用户转到 http://domain.com/dir/ 时,这就像一个魅力,但转到 http://domain.com/dir 会导致浏览器 url 字段显示 http://domain.com/ftp/dir/,这让我很难过。

有什么想法吗?

【问题讨论】:

    标签: .htaccess mod-rewrite apache2


    【解决方案1】:

    尝试从 RewriteRule 中删除前导斜杠

    RewriteRule ^(.+) ftp/$1 [L]
    

    【讨论】:

    • 您是否还有其他可能导致该问题的规则?您是否将文件重定向到可能会自行重定向的动态文件?我设置了一个测试环境,您的规则似乎可以正常工作。
    【解决方案2】:

    此行为可能是由DirectorySlash 引起的。尝试禁用它。

    【讨论】:

    • 有趣的是,当关闭 DirectorySlash 时,重定向工作,但 DirectoryIndex 被忽略。关于解决这个问题的任何想法?干杯
    猜你喜欢
    • 2011-06-28
    • 2011-05-15
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多