【发布时间】:2011-12-22 22:40:11
【问题描述】:
我已经查看了此处发布的与 .htaccess、apache、mod-rewrite 和 regex 相关的许多问题,但我就是不明白。我尝试了一些不同的事情,但要么我把事情复杂化了,要么犯了初学者的错误。无论如何,我已经做了几天了,并且随着每天 10000 404 的显示,我已经完全把事情搞砸了。
我的网站
我有一个 WordPress 网站,其中包含 23,000 多个帖子,分为 1200 多个类别。该网站以流媒体视频文件、行业新闻、节目评论、电影、phpbb 论坛等为特色,结构如下:
- 站点/基本类别(0 和 a-z)/子类别(系列名称)/ 所有流媒体剧集的帖子(剧集名称 .html)
- 所有流媒体电影的站点/电影/帖子 title.html
- 网站/新闻/posttitle.html
- 网站/评论/posttitle.html
- site / page.html 用于各种页面
- 网站/论坛
固定链接结构是/%category%/%postname%.html
我正在使用 Yoast Wordpress SEO 插件,并且可以选择为目录和类别附加一个尾随斜杠。
这是当前的.htaccess
# 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
我的例子
从我们的旧网站结构中,我们有许多使用“/episode title/”的入站链接。这是错误的。我们需要这些传入链接重定向到 /watch-anime/letter,数字或符号只有 1 个字符长/系列标题/剧集标题.html
/one-piece-episode-528/
应该是
/watch-anime/o/one-piece/one-piece-episode-528.html
我犯的一个错误导致了这个问题...“/watch-anime/letter/series title/episode title/”到“/watch-anime/letter/series title/episode title.html”。因此,我们需要从单个帖子中删除尾部斜杠并添加 .html
/watch-anime/w/welcome-to-the-nhk/welcome-to-the-nhk-episode-14/
应该是
/watch-anime/w/welcome-to-the-nhk/welcome-to-the-nhk-episode-14.html
同样的错误结合旧的站点结构问题导致了这个问题...“/episode title.html”需要是“/watch-anime/letter/series title/episode title.html”
/one-piece-episode-528.html
需要
/watch-anime/o/one-piece/one-piece-episode-528.html
如您所见,在迁移网站帖子结构和尝试修复它之间,我把事情搞砸了。我现在请求您提供任何帮助,以获取将处理这些 301 重定向的正确 .htaccess 文件。
感谢您提供的任何帮助!
【问题讨论】:
-
想在问题中包含您当前的 .htaccess 文件吗?
-
请告诉我你的 URI 路径中不是 空格!
-
不,URL 中没有空格。当前的 .htaccess 是相当默认的。当我无法让它工作时,我把所有东西都拿出来了。我将编辑帖子并提供一些真实示例。
标签: regex apache .htaccess mod-rewrite