Regex 使用通配符的不正确子目录需要htaccess重定向规则
我需要帮助编写htaccess重定向或重写规则(mod_rewrite.c)来处理以下情况:Regex 使用通配符的不正确子目录需要htaccess重定向规则,regex,.htaccess,wildcard,subdirectory,Regex,.htaccess,Wildcard,Subdirectory,我需要帮助编写htaccess重定向或重写规则(mod_rewrite.c)来处理以下情况: http://www.mysite.com/archive/[YEAR]/archive/[YEAR]/[CORRECT-PATH] 应重定向到: http://www.mysite.com/archive/[年份]/[路径] 基本上,有些外部链接在路径的/archive/[YEAR]/部分错误地折叠起来,其中应该只有一个实例。我每年都有一个子目录(/archive/2011、/archive/
http://www.mysite.com/archive/[YEAR]/archive/[YEAR]/[CORRECT-PATH]
应重定向到:
http://www.mysite.com/archive/[年份]/[路径]
基本上,有些外部链接在路径的/archive/[YEAR]/
部分错误地折叠起来,其中应该只有一个实例。我每年都有一个子目录(/archive/2011、/archive/2012,等等)——这些目录是单独Drupal安装的根目录——每个目录都有自己的.htaccess文件(这让我大吃一惊)
[CORRECT-PATH]
位通常是Drupal页面的别名,例如:
http://www.mysite.com/archive/2012/winners/all
我不太擅长通配符和匹配语法-任何帮助都将不胜感激。谢谢。尝试将这些规则添加到文档根目录中:
RewriteEngine On
RewriteRule ^/?archive/([0-9]{4})/archive/\1/(.*)$ /archive/$1/$2 [L,R=301]
这将检查任何4位数年份的年份是否重复。因此:
http://www.mysite.com/archive/1234/archive/2345/blah/blah
什么也不做http://www.mysite.com/archive/2345/archive/2345/blah/blah
被重定向到http://www.mysite.com/archive/2345/blah/blah
http://www.mysite.com/archive/1234/blah/blah
什么也不做再次查看您的问题后,您需要向每个
/archive/[YEAR]
目录添加规则:
RewriteEngine On
RewriteBase /archive/2011/
RewriteRule ^archive/[0-9]{4}/(.*)$ $1 [L,R=301]
并更改每个目录的
RewriteBase
。尝试将这些规则添加到文档根目录中:
RewriteEngine On
RewriteRule ^/?archive/([0-9]{4})/archive/\1/(.*)$ /archive/$1/$2 [L,R=301]
这将检查任何4位数年份的年份是否重复。因此:
http://www.mysite.com/archive/1234/archive/2345/blah/blah
什么也不做http://www.mysite.com/archive/2345/archive/2345/blah/blah
被重定向到http://www.mysite.com/archive/2345/blah/blah
http://www.mysite.com/archive/1234/blah/blah
什么也不做再次查看您的问题后,您需要向每个
/archive/[YEAR]
目录添加规则:
RewriteEngine On
RewriteBase /archive/2011/
RewriteRule ^archive/[0-9]{4}/(.*)$ $1 [L,R=301]
并更改每个目录的
RewriteBase
。后一个选项成功了!谢谢我以前也尝试过类似于第一个选项的代码,但效果并不理想,可能是因为这些子目录中缺少重写库。如果子目录在自己的目录中丢失,子目录是否继承父目录.htaccess规则?后一个选项做到了!谢谢我以前也尝试过类似于第一个选项的代码,但效果并不理想,可能是因为这些子目录中缺少重写库。如果子目录在其自己的目录中丢失,子目录是否继承父目录.htaccess规则?