繁体   English   中英

如何使用正则表达式和 htaccess 将用户从一个 URL 重定向到另一个 URL?

[英]How can I redirect users from a url to another using regex and htaccess?

我想将用户从www.example.com/ANYTHING重定向到www.example.com

.htaccess是更好的方法吗? 我该怎么做?

您需要使用 mod_rewrite RewriteRule (而不是 mod-alias RedirectMatch )以避免与 mod_dir 和DirectoryIndex *1发生冲突。

例如,在.htaccess (Apache 2.2 和 2.4)中:

RewriteEngine On

RewriteRule . / [R,L]

单点匹配某些内容(即不是文档根),我们重定向到文档根。

但是,如果文档根是一个链接到 JavaScript、CSS 和图像等资源的 HTML 网页,那么您需要对这些资源进行例外处理,否则这些资源也会被重定向到根!

例如:

RewriteEngine On

RewriteCond %{REQUEST_URI} !\.(js|css|jpg|png|gif)$ [NC]
RewriteRule . / [R,L]

*1 mod_alias RedirectMatch指令,例如RedirectMatch /. / RedirectMatch /. /最终将重写的请求(通过 mod_dir)与DirectoryIndex (例如index.php )匹配,从而导致重定向循环。

如果您真的只需要删除www.mydomain.com之后的所有内容,那么您只需删除从第一个/到 URL 末尾的所有内容:

搜索此正则表达式

%^([^/]*).*$

并用\\1代替,就像我在这里所做的那样。 请注意,我使用%符号作为分隔符而不是/ ,所以我不需要在正则表达式中转义/ (我可以使用除/之外的任何其他可用符号。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM