[英]How can I redirect users if using the non-rewritten url from Htaccess?
[英]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.