htaccess中的301重定向不适用于分层URL-php
我将我的网站的一些页面重定向到某个页面,它对简单url很有效,但对层次url不起作用。例如,在我的htaccess文件中,我的以下代码: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 那么
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