【问题标题】:Struggling with Apache .htaccess RewriteRule挣扎于 Apache .htaccess RewriteRule
【发布时间】:2012-12-29 01:51:59
【问题描述】:

我目前正在 Wordpress 中重做我的一个网站。此安装当前位于 wwww.mydomain.com/wordpress 中,而我正在对其进行测试。

在我的主站点上,请求是这样输入的: http://www.mydomain.com/index/newsid/16589/some-text-here-that-is-irrelevant

http://www.mydomain.com/.htaccess 的 .htaccess 目前如下所示:

Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule index/newsid/(.*) index.php?newsid=$1
RewriteEngine On

我的 Wordpress .htaccess 目前位于 www.mydomain.com/wordpress/.htaccess 如下

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

# END WordPress

当我迁移我的站点时,来自其他站点的所有链接都会中断,我已将所有文章合并到论坛的存档中。我需要有效地做两件事,让我的 .htaccess 在我的网站根目录上运行,然后将它移动到其他地方并将任何新闻请求重定向到其他地方。

基本上我想把这个变成: http://www.mydomain.com/index/newsid/16589/some-text-here-that-is-irrelevant

进入: http://www.mydomain.com/forums/index.php?showtopic=16589

他们这里的主要 id 是 16589,它是一个变量,可以更改。

任何帮助将不胜感激,我可以做简单的 .htaccess 文件,但这超出了我的能力。

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

    在将 wordpress 安装移动到文档根目录之后,您需要添加一些规则之前您的 wordpress 规则。您需要在文档根目录的 htaccess 文件中执行类似的操作:

    Options +FollowSymLinks
    RewriteEngine on
    
    # redirect your newsid
    RewriteRule ^index/newsid/([0-9]+)/ /forums/index.php?showtopic=$1 [L,QSA,R]
    
    # here are the wordpress rules
    
    # 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
    

    如果您想要 301 重定向,请将 [L,QSA,R] 替换为 [L,QSA,R=301]

    【讨论】:

      猜你喜欢
      • 2023-04-06
      • 2014-08-30
      • 1970-01-01
      • 2015-08-24
      • 2021-08-05
      • 2012-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多