我有一个问题(它可能很简单,但我从未需要编写正则表达式)
一位搜索引擎优化专家告诉我制作漂亮的网址,以便我使用CMS提供的.htaccess
文件。
但现在他要求我将旧网址重定向到新网址。
这不起作用
RewriteRule ^index.php?page=kontakt$ /kontakt.html [R=301,L]
还有这个(它应该从index.php文件重定向到主页面)
RewriteRule ^index.php$ / [R=301,L]
导致sitename.com/?page=kontakt
,所以现在我还必须重定向此。
我该如何解决这个问题?
答案 0 :(得分:0)
RewriteRule仅匹配没有查询字符串的基本URL。你需要一个额外的RewriteCond才能工作。
RewriteCond %{QUERY_STRING} ^page=kontakt$
RewriteRule ^index.php$ /kontakt.html [R=301,L]
修改强> 显然,在这种情况下会保留查询字符串,因此您可能会收到/kontakt.html?page=kontakt
要放弃原始查询字符串,您需要在网址后添加?
。
RewriteRule ^index.php$ /kontakt.html? [R=301,L]