Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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
如何在Joomla中使用.htaccess删除不存在的URL中的某些字符串并将其重定向到另一个URL_.htaccess_Url_Redirect - Fatal编程技术网

如何在Joomla中使用.htaccess删除不存在的URL中的某些字符串并将其重定向到另一个URL

如何在Joomla中使用.htaccess删除不存在的URL中的某些字符串并将其重定向到另一个URL,.htaccess,url,redirect,.htaccess,Url,Redirect,这是我在stackoverflow的第一个问题。这个网站在使用Drupal、Joomla、Wordpress、javascript、HTML、JQuery和其他许多web开发工具进行web开发方面确实帮了我很大的忙。谢谢,非常感谢 我也搜索过这个网站,它也与这个问题的标题有关,但老实说,没有一个网站直接回答了我的问题。我真的挣扎了好几天试图解决这个问题,但我从来没有真正得到正确的解决方案 这就是我的问题我一直试图使用.htaccess重定向Joomla站点中这些不存在的URL,但我做得不对。你们

这是我在stackoverflow的第一个问题。这个网站在使用Drupal、Joomla、Wordpress、javascript、HTML、JQuery和其他许多web开发工具进行web开发方面确实帮了我很大的忙。谢谢,非常感谢

我也搜索过这个网站,它也与这个问题的标题有关,但老实说,没有一个网站直接回答了我的问题。我真的挣扎了好几天试图解决这个问题,但我从来没有真正得到正确的解决方案

这就是我的问题我一直试图使用
.htaccess
重定向Joomla站点中这些不存在的URL,但我做得不对。
你们中有人能建议如何在
.htaccess
中执行此操作吗

www.mysite.com/index.php/component/content/37-2009-10-15-19-28-33?format=feed&type=rss

应该重定向到

www.mysite.com/index.php/component/content


www.mysite.com/index.php/playing-horizontal-concrete/park/34?format=feed&type=atom

应该重定向到

www.mysite.com/index.php/playing-horizontal-concrete/park


www.mysite.com/index.php/component/content/56?layout=blog&format=feed&type=rss

应该重定向到

www.mysite.com/index.php/component/content/


我尝试了别人的建议,但还是不成功


非常感谢您的帮助!提前谢谢你

如果要删除URL路径的最后一部分并使用永久外部重定向,请尝试:

RewriteEngine On
RewriteBase /

RewriteRule ^(index\.php/[^/]+/[^/]+)/ $1 [R=301,L]
但正如我在评论中指出的,您以后将无法恢复最终部分或查询字符串

编辑:如果要保留查询字符串,只需添加
[QSA]
标志:

RewriteRule ^(index\.php/[^/]+/[^/]+)/ $1 [R=301,L,QSA]

或者,您可以通过删除
[R]
标志来使用内部重定向。然后您将在环境变量
REQUEST\u URI
(包括查询字符串)或
REDIRECT\u URL
(不包括查询字符串)中找到原始URL。

简而言之,您似乎要从传入URL中删除最后一个字符串(段路径)。是吗?你能发布你当前的htaccess规则吗?是的@faa你是对的!这就是我到目前为止所得到的@PaoloStefan
RewriteEngine On
RewriteRule^index.php/laying horizontal/traffic island/35?format=feed&type=rss$/index.php/laying-horizontal-concrete/traffic-island[R=301,L]
您发布的示例不起作用,因为
RewriteRule
与URL中没有查询字符串的路径部分相匹配。如果要提取部分查询字符串,必须使用
RewriteCond%{query\u string}…
。此外,如果使用R标志强制进行外部重定向,则无法恢复使用规则丢弃的URL部分。这可能不是您想要的。如果我想稍后恢复查询字符串,那么当我删除
R=301
时是否能够实现它?非常感谢@nwellnhof!它解决了问题!我很高兴你能帮助我。再次感谢!:)。我想为你的答案投一票,但我仍然不能投票,因为我是这里的新手。@norvin1107单击答案左侧的复选框大纲,你应该能够毫无声誉地接受我的答案。