【问题标题】:Redirecting URLs from /ch-de/ to /de/ and redirecting URLs with ? and &将 URL 从 /ch-de/ 重定向到 /de/ 并使用 ?和 &
【发布时间】:2014-04-20 20:59:38
【问题描述】:

互联网研究对我没有帮助,所以我迫切地向社区寻求答案。问题是: 我们已将一个网上商店从 Joomla-Virtuemart 转移到 PrestaShop。现在我们遇到了重定向 URL 的问题。

例如,.htaccess 中的以下语法不起作用:

重定向 301http://wedding-shop.com/ch-de/Brautschmuck/Schmuckset-Mirandahttp://wedding-shop.com/de/brautschmuck/61-schmuckset-miranda-braut.html

它的作用是将初始 URL 中的 /ch-de/ 替换为 /de/ 并显示引发 404 错误的不存在页面。

在与帮助我准备 .htaccess 文件的主机商交谈后,他告诉我,PrestaShop 中应该有一些逻辑。我拼命想弄清楚这一点,但没有结果。

另一个问题是 URL 的类型

.../ch-de/index.php?page=shop.product_details&flypage=flypage.tpl&product_id=2484&category_id=90&option=com_virtuemart&Itemid=1

这在 .htaccess 文件中不起作用。在这里,我不知道为什么。我有大约 700 个此类 URL。

希望能提供任何解决此问题的提示... 提前致谢, 莱昂娜

【问题讨论】:

    标签: regex apache .htaccess mod-rewrite redirect


    【解决方案1】:

    您无法匹配 Redirect 指令中 URL 的 http:// 部分。改用这个:

    Redirect 301 /ch-de/Brautschmuck/Schmuckset-Miranda http://wedding-shop.com/de/brautschmuck/61-schmuckset-miranda-braut.html
    

    【讨论】:

    • 这个 .htaccess 文件的位置是什么,你尝试的 URL 是什么?
    • 在您的问题中提供完整的 .htaccess 并阐明您的要求。显然它不适用于/ch-de/index.php?page=shop URL。
    • 要求是使这个重定向 301 /ch-de/Brautschmuck/Schmuckset-Miranda wedding-shop.com/de/brautschmuck/… 工作
    • 我的回答很好。确保这是您的 .htaccess 中的第一条规则
    • 好吧,不幸的是它没有...我在 urls 列表上方添加了 .htaccess 的代码。有什么问题吗?
    【解决方案2】:

    格吕兹·莱昂纳,

    试试这个代码:

    RedirectMatch ^/ch-de/(.*)$ http://wedding-shop.com/de/$1
    

    【讨论】:

    • Grüeziwohl Adam ;) 我在这里添加了这段代码: RewriteEngine on RewriteCond %{HTTP_HOST} ^wedding-shop.com$ RewriteRule 。 - [E=REWRITEBASE:/] RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L] RedirectMatch ^/ch-de/(.*)$ wedding-shop.com/de/$1 ,清除缓存,但没有帮助..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2017-05-31
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2017-04-03
    相关资源
    最近更新 更多