.htaccess 重定向永久,www重定向&;url重写
我给了一个旧网站一个新的CMS。现在我需要一个包含3个部分的.htaccess,但它只适用于其中的2个部分:.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部
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]