.htaccess 重定向永久,www重定向&;url重写

.htaccess 重定向永久,www重定向&;url重写,.htaccess,.htaccess,我给了一个旧网站一个新的CMS。现在我需要一个包含3个部分的.htaccess,但它只适用于其中的2个部分: 重定向永久 www重定向(这不起作用) url重写 现在我要解释更多。 第0部分(仅适用于全部) 第1部分(永久重定向)我用于将旧CMS的URL重定向到新CMS的内容 RewriteCond %{THE_REQUEST} !/de-old-content.html Redirect permanent /de-old-content.html /old/content.html 第2部

我给了一个旧网站一个新的CMS。现在我需要一个包含3个部分的.htaccess,但它只适用于其中的2个部分:

  • 重定向永久
  • www重定向(这不起作用)
  • url重写
  • 现在我要解释更多。 第0部分(仅适用于全部)

    第1部分(永久重定向)我用于将旧CMS的URL重定向到新CMS的内容

    RewriteCond %{THE_REQUEST} !/de-old-content.html
    Redirect permanent /de-old-content.html /old/content.html
    
    第2部分(www重定向)我使用它来避免重复内容

    RewriteCond %{HTTP_HOST} ^website.de [NC]
    RewriteRule ^(.*)$ http://www.website.de/$1 [L,R=301]
    
    第3部分(url重写)将“old/content.html”转换为“index.php?adresse=old/content”

    [l,qsa]只允许使用$\u GET

    有可能把这些部件组合起来吗

    如果我使用第2部分,它会显示正确的内容

    但如果没有www,它将重定向到

    我想这部分一定有错


    提前感谢。

    重定向是mod_别名的一部分,而RewriteCond和RewriteRule是mod_rewrite的一部分。因此,第1部分的重写条件准确地适用于第2部分的重写规则,这将使其无法正常工作

    最好避免同时使用重写规则和重定向

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^website.de [NC]
    RewriteRule ^(.*)$ http://www.website.de/$1 [L,R=301]
    
    RewriteRule ^de-old-content\.html$ /old/content.html [L,R=301]
    
    RewriteRule ^(.*)\.html$ index.php?adresse=$1 [L,QSA]
    

    另外,为了保持理智,测试时使用302。一切正常后,将其更改为301。由于您已经使用了301,请同时清除浏览器缓存,以便从浏览器缓存中删除所有旧的301。

    是否重定向到错误的主机?请注意,重定向指令不适用于RewriteCond条件,它们是不同模块的一部分。请使用URL作为示例,而不是规则。他们根本不工作。
    RewriteRule ^(.*)\.html$ index.php?adresse=$1 [l,qsa]
    
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{HTTP_HOST} ^website.de [NC]
    RewriteRule ^(.*)$ http://www.website.de/$1 [L,R=301]
    
    RewriteRule ^de-old-content\.html$ /old/content.html [L,R=301]
    
    RewriteRule ^(.*)\.html$ index.php?adresse=$1 [L,QSA]