【问题标题】:.htaccess Redirect Rewrite Rule.htaccess 重定向重写规则
【发布时间】:2016-06-08 00:38:33
【问题描述】:

我在重新设计网站时遇到一些重定向问题。 旧的有几个这样的网址:

http://www.example.com/sitegroup/pages/GA/GA_Be.shtml

我想把它重定向到:

http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenforum-ideengarten

我尝试了以下重写:

RewriteRule ^/?pagesGA/GA_Be.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenforum-ideengarten$1 [R=301,L,NE]

但我就是无法让它工作。我对 .htaccess 重写器真的很陌生。

还有一些旧页面有这样的链接:

http://www.example.com/sitegroup/pages/GA/GA_Be.shtml?navid=15

但是 ?navid=15 没有做任何事情(只是突出显示菜单链接)所以我认为只重定向 GA_BE.shtml 就足够了。我说的对吗?

这是完整的 .htaccess:

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

# END WordPress

RewriteRule ^/?pagesGA/GA_Be.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenforum-ideengarten$1 [R=301,L,NE]

提前致谢!

【问题讨论】:

    标签: .htaccess redirect mod-rewrite


    【解决方案1】:

    您应该将RewriteRule 放在 Wordpress Dispatcher 之前:

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /sitegroup/
        RewriteRule ^pages/GA/GA_Be\.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenforum-ideengarten [R=301,L,NE]
        RewriteRule ^pages/GA/GA_Bg\.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenplanung-landsc‌​haftsplanung [R=301,L,NE]
        RewriteRule ^pages/GA/GA_En\.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#erdsondenbohrung-erd‌​waerme [R=301,L,NE]
    </IfModule>
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /sitegroup/
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /sitegroup/index.php [L]
    </IfModule>
    # END WordPress
    

    否则请求将首先由 Dispatcher 处理,并且永远不会达到您的规则。

    【讨论】:

    • 谢谢!现在它正在工作!但是如果我想重定向更多页面,它只是与第一个页面一起工作.. &lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase /sitegroup/ RewriteRule ^pages/GA/GA_Be.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenforum-ideengarten [R=301,L,NE] RewriteRule ^pages/GA/GA_Bg.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#gartenplanung-landschaftsplanung [R=301,L,NE] RewriteRule ^pages/GA/GA_En.shtml$ http://www.example.com/sitegroup/garten-und-landschaftsbau/#erdsondenbohrung-erdwaerme [R=301,L,NE]
    • 您能否接受此答案以将问题标记为已解决? How does accepting an answer work?
    • 我会的 ;) 但是你能帮我解决我上面的评论吗?只有第一条规则被执行:(
    • 抱歉没有看到您的编辑 ;)。它应该可以工作,我看不出这些规则有任何错误。
    • 嘿,它仍然只适用于第一条规则 :( 好的,这只是直接从 Excel 复制;)
    猜你喜欢
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-22
    • 2013-01-21
    • 1970-01-01
    相关资源
    最近更新 更多