【发布时间】:2012-10-14 13:21:57
【问题描述】:
已经在这里寻找了一段时间的答案,但到目前为止没有任何效果。基本上,一个站点已安装在 Web 根目录的子目录中,但所有内部链接都指向 Web 根目录,因为它是在实时站点上设置的。是否有将所有内部链接重定向到子目录的 htaccess 规则,或其他使链接正常工作的方式?
【问题讨论】:
标签: .htaccess redirect rewrite subdirectory
已经在这里寻找了一段时间的答案,但到目前为止没有任何效果。基本上,一个站点已安装在 Web 根目录的子目录中,但所有内部链接都指向 Web 根目录,因为它是在实时站点上设置的。是否有将所有内部链接重定向到子目录的 htaccess 规则,或其他使链接正常工作的方式?
【问题讨论】:
标签: .htaccess redirect rewrite subdirectory
尝试将这些规则添加到 文档根目录(网络根目录)中的 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 的目的吗?
!-f) 或目录 (!-d)。接下来的条件检查我们是否在给定请求前添加了/subdirectory,它是否会映射到现有文件(-f)no 现有目录(-d)。