我正在开展一个网站项目,我们基本上从TYPO3转移到WordPress& Magento的溶液。
在启动新网站之前,我想添加重写规则,将旧的(TYPO3,非SEF)网址指向相应的新网址。我有一个包含大约1000个URL的Excel列表,我想以某种方式添加到htaccess并创建301' s。 如果你有更好的方法,我要感恩。
我正在努力的是:</ p>
&#34; old&#34;网址结构类似于?id=123\&user_e15proddb1_pi1[domain]=42
相应的新网址将是
/de/alle-produkte/neuheiten.html
RewriteEngine打开,RewriteBase是/.
我试过
RewriteCond %{QUERY_STRING} ^id=123\&user_e15proddb1_pi1[domain]=42$
RewriteRule . /de/alle-produkte/neuheiten.html [R=301,L]
另外转义_
和[]
无效。
我试图通过
{QUERY_STRING}
分成两部分
RewriteCond %{QUERY_STRING} ^id=123$
RewriteCond %{QUERY_STRING} ^user_e15proddb1_pi1[domain]=42$
其次是TheRule。也没有用。
重写本身有效,因为我试过
RewriteRule .id=123\&user_e15proddb1_pi1\[domain\]=42$ /de/alle-produkte/neuheiten.html [R=301,L]
但这只能在开头没有问号的情况下起作用。
你能否暗示我做错了什么?
答案 0 :(得分:1)
您可以通过转发[
和]
:
RewriteCond %{QUERY_STRING} ^id=123&user_e15proddb1_pi1\[domain\]=42$
RewriteRule ^ /de/alle-produkte/neuheiten.html? [R=302,L]
另请注意目标URI末尾的?
,以删除任何现有的查询字符串,以防止重定向循环。
答案 1 :(得分:0)
我得到了一个解决方案,并让这个工作:
RewriteCond %{QUERY_STRING} ^id=123\&user\_e15proddb1\_pi1\[domain\]=42$
RewriteRule (.*) /de/alle-produkte/neuheiten.html? [R=301,L]
当我一遍又一遍地尝试时,逃避这些角色的东西很可能出错了。