将内部链接重定向到带有.htaccess的子目录(用于测试站点)
我已经在这里寻找了一段时间的答案,但到目前为止没有任何效果。基本上,一个站点已经安装在WebRoot的子目录中,但是所有的内部链接都指向WebRoot,因为这是如何在live站点上设置的。是否存在将所有内部链接重定向到子目录的htaccess规则,或使链接正常工作的其他方法?尝试将这些规则添加到文档根目录(web根目录)中的htaccess文件中:将内部链接重定向到带有.htaccess的子目录(用于测试站点),.htaccess,redirect,rewrite,subdirectory,.htaccess,Redirect,Rewrite,Subdirectory,我已经在这里寻找了一段时间的答案,但到目前为止没有任何效果。基本上,一个站点已经安装在WebRoot的子目录中,但是所有的内部链接都指向WebRoot,因为这是如何在live站点上设置的。是否存在将所有内部链接重定向到子目录的htaccess规则,或使链接正常工作的其他方法?尝试将这些规则添加到文档根目录(web根目录)中的htaccess文件中: 如果要重定向这些请求,请将方括号标志更改为:[L,R=301],谢谢。我假设代码中的第三行的结尾应该是-d,而不是-f。你能简单解释一下第一次重写的
如果要重定向这些请求,请将方括号标志更改为:
[L,R=301]
,谢谢。我假设代码中的第三行的结尾应该是-d
,而不是-f
。你能简单解释一下第一次重写的目的吗?@user1697563是的,那是一个打字错误。固定的。前两个条件检查给定的请求是否没有直接映射到文件(!-f
)或目录(!-d
)。接下来的条件检查我们是否在给定的请求前面添加了一个子目录,它是否会映射到一个现有的文件(-f
)没有一个现有的目录(-d
)。
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]