【问题标题】:Redirect internal links to subdirectory with .htaccess (for test site)使用 .htaccess 将内部链接重定向到子目录(用于测试站点)
【发布时间】:2012-10-14 13:21:57
【问题描述】:

已经在这里寻找了一段时间的答案,但到目前为止没有任何效果。基本上,一个站点已安装在 Web 根目录的子目录中,但所有内部链接都指向 Web 根目录,因为它是在实时站点上设置的。是否有将所有内部链接重定向到子目录的 htaccess 规则,或其他使链接正常工作的方式?

【问题讨论】:

    标签: .htaccess redirect rewrite subdirectory


    【解决方案1】:

    尝试将这些规则添加到 文档根目录(网络根目录)中的 htaccess 文件中:

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/subdirectory%{REQUEST_URI} -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/subdirectory%{REQUEST_URI} -d
    RewriteRule ^ /subdirectory%{REQUEST_URI} [L]
    

    如果您想重定向这些请求,请将方括号标志更改为:[L,R=301]

    【讨论】:

    • 行得通,谢谢。我假设您的代码中的第三行的末尾是-d,而不是-f。你能简单解释一下第一个 RewriteCond 的目的吗?
    • @user1697563 是的,这是一个错字。固定的。前两个条件检查给定请求是否不直接映射到文件 (!-f) 或目录 (!-d)。接下来的条件检查我们是否在给定请求前添加了/subdirectory,它是否会映射到现有文件(-fno 现有目录(-d)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-06
    • 2016-08-15
    • 1970-01-01
    • 1970-01-01
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多