0

我已经在网上搜索了一个多小时,试图找出为什么我的 .htaccess 文件没有按预期工作,但所有关于 .htaccess 的文档和问题似乎都说一切都应该没问题。我现在正在使用一个 wordpress 网站,需要将一些旧链接重定向到 *.html 文件到新的永久链接(因为命名约定已经完全改变了)。所以我的 .htaccess 文件看起来像这样:

# Redirects for old URLs
redirect 301 /contact_us http://rpcdev.thisisforge.com/contact/
redirect 301 /about_us http://rpcdev.thisisforge.com/about/
redirect 301 /clients http://rpcdev.thisisforge.com/work/
redirect 301 /clients/event.html http://rpcdev.thisisforge.com/work/event-retail-design/
redirect 301 /clients/identity.html http://rpcdev.thisisforge.com/work/identity-branding/
redirect 301 /clients/web.html http://rpcdev.thisisforge.com/work/web-design/
redirect 301 /clients/corp_lit.html http://rpcdev.thisisforge.com/work/brochures-publications/

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

前三个工作正常,它是来自特定 .html 页面的那些不是。我尝试将代码放在 WOrdPress 代码的上方和下方,并且尝试切换 301 的顺序,因此 .html 重定向是第一个,而不是最后一个。但这无济于事。奇怪的是,有时 corp_lit.html 重定向可以正常工作,但其他的则不行。我看不出这有什么押韵或理由!

我的浏览器或操作系统(Windows s7)是否从 .htaccess 或其他东西中缓存 301,从它们可能输入错误时回来?我尝试在命令提示符下清空浏览器缓存并刷新 DNS,但无济于事。

拉任何帮助非常感谢。

4

1 回答 1

0

Redirect 指令将路径节点链接在一起,因此您的第一个 /clients 重定向正在应用而不是以下重定向,请尝试将其更改为使用 RedirectMatch

 RedirectMatch 301 ^/clients/?$ http://rpcdev.thisisforge.com/work/
于 2012-09-14T22:51:45.840 回答