Php htaccess定向错误
我有以下代码 details.php工作正常。但是当我访问gotolink.php时,它会在details.php页面中再次指示我,这给了我404个错误,因为它的url出乎意料Php htaccess定向错误,php,.htaccess,Php,.htaccess,我有以下代码 details.php工作正常。但是当我访问gotolink.php时,它会在details.php页面中再次指示我,这给了我404个错误,因为它的url出乎意料 RewriteEngine On RewriteRule ^([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1 RewriteRule ^([a-zA-Z0-9-/]+)/$ uk/details.php?pid=$1 RewriteRule ^([a-zA-Z0-9-/]+)$ goto
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ uk/details.php?pid=$1
RewriteRule ^([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ gotolink/gotolink.php?id=$1
请帮忙 重写条件是相同的,因此第一个将捕获所有请求,它永远不会到达gotolink.php详细信息的正则表达式。php和
gotolink.php
是相同的,apache无法判断http://domain.com/abc123
应重写为/uk/details.php?pid=abc123
或/gotolink/gotolink.php?id=abc123
,因为URI,/abc123
与以下两项匹配:
RewriteRule ^([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1
RewriteRule ^([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1
details.php是第一个,这就是为什么所有内容都被重写为details.php的原因。如果交换它们,所有内容都将被重写为gotolink.php。必须使这些正则表达式以不同的方式匹配。例如:
RewriteRule ^d/([a-zA-Z0-9-/]+)$ uk/details.php?pid=$1
RewriteRule ^g/([a-zA-Z0-9-/]+)$ gotolink/gotolink.php?id=$1
所以现在/d/abc123
转到/uk/details.php?pid=abc123
,/g/abc123
转到/gotolink/gotolink.php?id=abc123
。或者,如果详细信息pid始终为字母,gotolink id始终为数字或其他内容,则可以将它们分开:
RewriteRule ^([a-zA-Z-/]+)$ uk/details.php?pid=$1
RewriteRule ^([0-9-/]+)$ gotolink/gotolink.php?id=$1
你到底想做什么?