如果在Wordpress中找不到文件,则使用.htaccess重定向

时间:2010-11-04 02:35:08

标签: wordpress .htaccess

我有一个问题,我们正在与Wordpress合并一个网站。该网站在“/ news”目录中有大量新闻报道,我们需要保留。当我们在说“/ wordpress”添加CMS时,我们可以将基本URL设置为目录的根目录,因此当我们在“新闻”类别中创建新帖子时,它的链接是“/ news / this-is-后标题“,除了真实的位置是”/ wordpress / news / this-is-the-post-title“。所以我的问题是我们希望将所有新闻故事保存在“/ news”URL,在我的脑海中,我们只需要.htaccess说“如果请求的URL不存在于/ news目录中,请尝试/ wordpress / news“,当然如果Wordpress没有找到任何东西,它可以404.希望这有道理,谢谢!

2 个答案:

答案 0 :(得分:0)

我不完全了解原始新闻报道是如何举行的。但是,如果它们被PHP抓取,那么如果它不存在,你应该可以重定向到/wordpress/news/post-title

另一方面,如果新闻报道是静态文件,您可以使用.htaccess检查它们,并确保该文件存在于服务器上。

# Goes in the "news" directory
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /news

  # These make sure the file or directory doesn't exist
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d

  # Redirect to /wordpress/news/whatever-entered-goes-here
  RewriteRule ^(.*)$ /wordpress/news/$1 [L]
</IfModule>

参考:http://www.addedbytes.com/cheat-sheets/mod_rewrite-cheat-sheet/

答案 1 :(得分:0)

如果您只使用WordPress和静态预先存在的目录和文件(而不是WordPress旁边的其他CMS),您可以按照giving WordPress its own directory上的说明进行操作。所有WordPress文件都转到wordpress/,只有index.php.htaccess被复制回根目录。来自WordPress的标准.htaccess已经有两个RewriteCond规则来检查现有文件,因此如果请求是news/happy-2010.html并且此文件已经存在,那么您的服务器将只提供此服务而不是启动WordPress。