Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 正在使用.htaccess删除URL的一部分_Php_Regex_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php 正在使用.htaccess删除URL的一部分

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”,然后将每个参数转换为可

我最近从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”中的所有内容

我希望这是有道理的。 期待某人的回音

应该可以:

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部分之前的所有内容,忽略其他所有内容,然后重定向到捕获的块。这是一个相当基础的知识,为了更好地理解它,我建议阅读一些关于重写的教程。感谢您的帮助点击答案旁边的复选标记,将其标记为“接受的解决方案”,如果它对您有帮助:)