Apache Htaccess将URL重定向到另一个URL并删除字符
我希望将旧网站重定向到新网站,URL如下所示:Apache Htaccess将URL重定向到另一个URL并删除字符,apache,.htaccess,redirect,Apache,.htaccess,Redirect,我希望将旧网站重定向到新网站,URL如下所示:https://test.fr/directory/homepage.html 在.htaccess文件中,我有: RedirectPermanent / https://google.com/` 但它的作用是:https://google.com/directory/homepage.html 我想重定向到https://google.com/并删除.com/之后的所有内容,但我不知道如何删除。只需使用重写模块: RewriteEngine on
https://test.fr/directory/homepage.html
在.htaccess文件中,我有:
RedirectPermanent / https://google.com/`
但它的作用是:https://google.com/directory/homepage.html
我想重定向到
https://google.com/
并删除.com/
之后的所有内容,但我不知道如何删除。只需使用重写模块:
RewriteEngine on
Rewrite ^ https://google.com/ [R=301,END]
显然,重写模块需要加载到http服务器中。这通常是这样的,当然对所有托管提供商来说都是如此
如果只想在http主机内重定向该特定URL,则应执行以下操作:
RewriteEngine on
Rewrite ^/?directory/homepage\.html$ https://google.com/ [R=301,END]
您可以在分布式配置文件(“.htaccess”)中实现这些指令。不过,如果您有权访问实际http服务器的主机配置,您应该更喜欢该配置。只需使用重写模块:
RewriteEngine on
Rewrite ^ https://google.com/ [R=301,END]
显然,重写模块需要加载到http服务器中。这通常是这样的,当然对所有托管提供商来说都是如此
如果只想在http主机内重定向该特定URL,则应执行以下操作:
RewriteEngine on
Rewrite ^/?directory/homepage\.html$ https://google.com/ [R=301,END]
您可以在分布式配置文件(“.htaccess”)中实现这些指令。不过,如果您有权访问,您应该更喜欢实际http服务器的主机配置。请在您的问题中共享您的htaccess规则文件,谢谢。请在您的问题中共享您的htaccess规则文件,谢谢。你为什么在重定向规则上使用
END
标志?@AmitVerma不久前,我自己也很惊讶,没有L
或END
标志,重定向并不总是有效。我不知道为什么。。。从文档中我了解到,外部重定向总是会立即终止重写过程,这可能是有意义的。但正如我所说的:我偶然发现了两个案例,没有终止标志,这是行不通的。为什么。@AmitVerma是的,它与这里的L
标志具有相同的效果。我通常更喜欢END
标志,因为它对我来说更透明。很清楚将会发生什么。Arakscha,我经常在不同版本的Apache上测试带或不带标志的重写规则,但我从来没有看到任何区别。即使您不使用标志,规则也同样有效。@AmitVerma谢谢。这也是我的理解。我记得大约三年前,当我偶然发现两个案例时,我感到非常惊讶,这两个案例确实产生了影响。不幸的是,我不记得细节了。我的错。你为什么在重定向规则上使用END
标志?@AmitVerma不久前,我自己很惊讶,没有L
或END
标志,重定向并不总是有效。我不知道为什么。。。从文档中我了解到,外部重定向总是会立即终止重写过程,这可能是有意义的。但正如我所说的:我偶然发现了两个案例,没有终止标志,这是行不通的。为什么。@AmitVerma是的,它与这里的L
标志具有相同的效果。我通常更喜欢END
标志,因为它对我来说更透明。很清楚将会发生什么。Arakscha,我经常在不同版本的Apache上测试带或不带标志的重写规则,但我从来没有看到任何区别。即使您不使用标志,规则也同样有效。@AmitVerma谢谢。这也是我的理解。我记得大约三年前,当我偶然发现两个案例时,我感到非常惊讶,这两个案例确实产生了影响。不幸的是,我不记得细节了。我的错。