我正在尝试使用主目录的.htaccess文件中的RewriteRule将一个子目录重定向到另一个子目录。
例如:http://website.com/subdir应重写为http://website.com/another_dir/destination_dir,但用户仍应在地址栏中看到http://website.com/subdir。
如果用户使用尾部斜杠结束URL,则此方法非常有效。示例:http://website.com/subdir/(生成200
但是,如果省略斜杠,则会生成301重定向,并且我们会看到不需要的目标目录。例如,http://website/subdir会将用户重定向到http://website/another_dir/destination_dir
以下是.htaccess的相关部分:
# URL Rewriting:
RewriteEngine On
RewriteBase /
...
# Redirect subdirectories:
RewriteRule ^subdir(.*)$ another_dir/destination_dir$1 [PT,NC,QSA,L]
感谢任何帮助!
答案 0 :(得分:1)
您可以在重写规则中调整正则表达式,以选择性地匹配斜杠。
RewriteRule ^subdir(/?.*)$ another_dir/destination_dir$1 [PT,NC,QSA,L]
请注意/?
之后的subdir
。这表示在您的子目录之后可能存在或不存在斜杠,因此正则表达式将匹配任一方式。
答案 1 :(得分:0)
快速修复
此htaccess中的 DirectorySlash OFF
和另一个/ {/ p>中的DirectorySlash ON
.htaccess