【发布时间】:2011-01-31 00:04:33
【问题描述】:
所以我移动了一个网站并尝试对所有内容进行 301 重定向,我经常这样做,所以这是一个奇怪的问题,但可能是我没有看到的愚蠢的东西。
我的所有重定向都工作正常,除了第一个字符串以“/Dining”或“/dining”开头的任何重定向都失败了。例如,此重定向工作正常-
Redirect 301 /healthfitness/teeth.cfm /healthcare/pretty-teeth
...以及 100 多个其他人。
但所有这些都失败了(比我展示的要多得多)-
Redirect 301 /Dining/diningreviews/vawines.cfm /shopping/wines-2004
Redirect 301 /Dining/diningathome/carrotcake.cfm /home-garden/carrot-cake-2003
Redirect 301 /Dining/diningathome/oldvarolls.cfm /home-garden/virginia-rolls-2003
Redirect 301 /Dining/diningathome/pumpkincake.cfm /home-garden/pumpkin-cake-2003
我的 .htaccess 文件的顶部看起来像这样-
RewriteEngine On
RewriteBase /
#uploaded files
RewriteRule ^(.*/)?files/$ index.php [L]
RewriteCond %{REQUEST_URI} !.*wp-content/plugins.*
RewriteRule ^(.*/)?files/(.*) wp-content/blogs.php?file=$2 [L]
# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ $1/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
RewriteRule . index.php [L]
<IfModule mod_security.c>
<Files async-upload.php>
SecFilterEngine Off
SecFilterScanPOST Off
</Files>
</IfModule>
#Everything below here are Redirect 301s
【问题讨论】:
-
httpd.apache.org/docs/1.3/mod/mod_alias.html#redirect 说“此外,URL-path 必须是完全限定的 URL,而不是相对路径,即使与 .htaccess 文件或
部分内部一起使用也是如此。” -
另外,在较旧的站点上,请注意以前的开发人员可能已放入 httpd.conf 或其他可能会干扰的配置文件中的重定向。
标签: .htaccess mod-rewrite redirect http-status-code-301