目前我有以下htaccess重定向规则,可以检测任何看起来像
mysite.com/node/xxx 并将其重定向到.php脚本,该脚本反过来找到页面的URL并将用户重定向到该页面(例如 mysite.com/page/page.html)
RewriteCond %{QUERY_STRING} ^(page=(31|1))?$ [NC]
RewriteRule ^node/?$ /? [L,NC,R=301]
RewriteRule ^(../)?node/([0-9]+)$ noderedirect.php?nid=$2 [L]
但是,我想要的是,当用户访问时
mysite.com/node
或 mysite.com/node?page=xxx
他们被重定向到主页
但
当他们访问时
mysite.com/node/xxx/edit
规则未激活。
我尝试了几个选项(停止在上面的一个),到目前为止我有这个,但它仍然使用户能够访问mysite.com/node?page=xxx
(所有其他条件都工作正常。
有人可以帮忙吗?
我只是希望它转到该页面,而不是执行任何操作。 但是当它
/node/xxx
或/node
或/node?page=xxx
时,我希望它重定向到noderedirect.php
如果您希望它始终转到节点重定向,请尝试:
RewriteCond %{THE_REQUEST} /+node?page=([0-9]+)
RewriteRule ^ /node/%1? [L,R=301]
RewriteRule ^node/?$ /noderedirect.php [L]
RewriteRUle ^node/([0-9]+)/? /noderedirect.php?nid=$1 [L]