Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
htaccess中的301重定向不适用于分层URL-php_Php_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

htaccess中的301重定向不适用于分层URL-php

htaccess中的301重定向不适用于分层URL-php,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我将我的网站的一些页面重定向到某个页面,它对简单url很有效,但对层次url不起作用。例如,在我的htaccess文件中,我的以下代码: Redirect 301 /Search-Engine-Marketing/ www.mysite.com/search-engine-marketing 效果很好,但当我执行以下操作时: Redirect 301 /Search-Engine-Marketing/SEO/ www.mysite.com/search-engine-marketing 那么

我将我的网站的一些页面重定向到某个页面,它对简单url很有效,但对层次url不起作用。例如,在我的htaccess文件中,我的以下代码:

Redirect 301 /Search-Engine-Marketing/ www.mysite.com/search-engine-marketing
效果很好,但当我执行以下操作时:

Redirect 301 /Search-Engine-Marketing/SEO/ www.mysite.com/search-engine-marketing
那么这个代码就根本不起作用了。它在屏幕上显示以下错误-

找不到

在此服务器上找不到请求的URL/搜索引擎营销SEO/


因此,请告诉我重定向此类URL的正确代码语法是什么?

最好使用
RedirectMatch
进行精确匹配(使用regex):

或者要重定向搜索引擎营销下的所有内容,请使用:

RedirectMatch 301 ^/Search-Engine-Marketing/.*$ /search-engine-marketing

您是否尝试过在.haccess文件中添加http://在www之前?我的朋友http://已经在htaccess文件中,但我不得不从我的问题中删除它,因为stackoverflow不允许它。所以这不是一个问题。对于这种情况,我们是否可以不使用Redirect而不使用RedirectMatch来编写代码。然而,我还没有试过你的代码,但我也会试着告诉你。事实上,我想将所有这些URL重定向到/search-engine-marketing。这样的话,
RedirectMatch
就更方便了,测试一下,让我知道。哇!这真的奏效了。谢谢你,朋友。但我仍然想知道,仅仅通过重定向是不可能的。事实上,我读了很多与这个主题相关的教程,以及他们建议的重定向,但我也注意到所有这些都涉及简单的url示例,而不是我目前的情况,即层次url。是的,这正是使用RedirectMatch使用精确匹配的原因。很高兴它成功了。
RedirectMatch 301 ^/Search-Engine-Marketing/.*$ /search-engine-marketing