Reg 表达式 htaccess RewriteRule

Reg 表达式 htaccess RewriteRule

我是第一次使用正则表达式在 htaccess 中重写 URL

如果设置了名为“ref”的 cookie,我需要将 mysite.com/123 重定向到 mysite.com/。

我当前的 htaccess 是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_COOKIE} ref=true [NC]
RewriteRule ^/([0-9]+)/$ http://www.mysite.com
</IfModule>

目标是当有人通过 mysite.com/111(某个数字)进入网站时,在设置 cookie 后他们会被重定向到该网站的主页。

答案1

该规则永远不会匹配,因为你们都在一个htaccess文件中并且设置了RewriteBase。这两个因素都设置了一个RewriteRule在其中起作用的相对上下文 - 因此它会删除匹配字符串上的前导斜杠。

尝试这个:

RewriteRule ^([0-9]+)/?$ http://www.mysite.com/ [R=302,L]

相关内容