Php 正在使用.htaccess删除URL的一部分
我最近从Magento中删除了一个模块,该模块为过滤搜索创建了虚荣URL。 当我删除这个模块时,它现在使用URL参数来过滤所有的导航页面 我想将所有这些虚荣URL重定向到同一页面,而不包含URL的虚荣部分 我希望重定向的URL示例如下: /干手器/高速/shopby/brand-jet\u毛巾-ultradry-magnum\u multi\u dri-dyson/干手器\u干燥时间\u秒-10秒以下/ 重定向到 /干手机/高速 模块的工作方式是添加字符串“shopby”,然后将每个参数转换为可读格式 我需要一个重写规则来将所有包含“shopby”的URL重新定向到同一个URL,但删除“shopby”中的所有内容 我希望这是有道理的。 期待某人的回音应该可以:Php 正在使用.htaccess删除URL的一部分,php,regex,.htaccess,mod-rewrite,url-rewriting,Php,Regex,.htaccess,Mod Rewrite,Url Rewriting,我最近从Magento中删除了一个模块,该模块为过滤搜索创建了虚荣URL。 当我删除这个模块时,它现在使用URL参数来过滤所有的导航页面 我想将所有这些虚荣URL重定向到同一页面,而不包含URL的虚荣部分 我希望重定向的URL示例如下: /干手器/高速/shopby/brand-jet\u毛巾-ultradry-magnum\u multi\u dri-dyson/干手器\u干燥时间\u秒-10秒以下/ 重定向到 /干手机/高速 模块的工作方式是添加字符串“shopby”,然后将每个参数转换为可
RewriteEngine on
RewriteRule (/.*)/shopby $1 [R=302,L]
测试后,您可以将302
更改为301
,以确保从搜索引擎索引中删除旧URL。应该可以:
RewriteEngine on
RewriteRule (/.*)/shopby $1 [R=302,L]
测试后,您可以将302
更改为301
,以确保从搜索引擎索引中删除旧URL。尝试以下操作:
RewriteRule ^(.+?)/shopby/?.*$ $1/shopby [L]
试试这个:
RewriteRule ^(.+?)/shopby/?.*$ $1/shopby [L]
谢谢Niels你能解释一下规则吗?这只是一个基本的正则表达式,它捕获变量中literal/shopby部分之前的所有内容,忽略所有其他内容,然后重定向到捕获的块。这是比较基础的知识,,为了更好地理解它,我建议阅读一些关于重写的教程。感谢您的帮助点击答案旁边的复选标记,将其标记为“已接受的解决方案”,如果它对您有帮助:)谢谢Niels,您能解释一下规则吗?只是一个基本的正则表达式,它捕获变量中文字/Shoppy部分之前的所有内容,忽略其他所有内容,然后重定向到捕获的块。这是一个相当基础的知识,为了更好地理解它,我建议阅读一些关于重写的教程。感谢您的帮助点击答案旁边的复选标记,将其标记为“接受的解决方案”,如果它对您有帮助:)