Ben*_*Ben 3 .htaccess mod-rewrite
我正在制作的网站上有新闻文章,位于最新的新闻目录中.
/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
现在根据新闻文章的年份将它们移到不同的目录中.所以2013年现在在:
/news/2013/some-article-2013.html
Run Code Online (Sandbox Code Playgroud)
和2012年在:
/news/2012/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令轻松更新其中一个目录:
RewriteRule ^news/latestnews/(.*)$ /news/2011/$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但我需要重定向到特定的年份目录.所有新闻文章都包含名称的年份.所以有些文章 - 2012年或某篇文章 - 2013年.
任何有关调整我的规则以帮助检查年份的帮助.
谢谢
=========编辑=======
我已设法添加一些RewriteCond重定向到正确的目录,但无法附加所请求的文件名.
所以使用这个规则
RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteCond %$1 ^(.*)2012(.*)$
RewriteRule ^(.*)$ /news/2012 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
这个网址
/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
被重定向到
/news/2012
Run Code Online (Sandbox Code Playgroud)
但网址中缺少"some-article-2012.html".
我已经尝试在rewriterule的末尾添加1美元,所以你有:
RewriteRule ^(.*)$ /news/2012$1 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
但是完整的旧网址会被追加,所以你有:
/news/2012/news/latestnews/some-article-2012.html
Run Code Online (Sandbox Code Playgroud)
好吧,我不能完全相信这一点,因为它是由我发布的另一个论坛上的用户,但我想分享以防它在这里帮助某人.
RewriteCond %{REQUEST_URI} ^/news/latestnews/(.*)$
RewriteRule ^news/latestnews/(.*)(201[0-9])(.*)$ /news/$2/$1$2$3 [R=301,L]
Run Code Online (Sandbox Code Playgroud)
这实际上将涉及2010年以来的所有年份.
| 归档时间: |
|
| 查看次数: |
15636 次 |
| 最近记录: |