Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess定向错误_Php_.htaccess - Fatal编程技术网

Php htaccess定向错误

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

我有以下代码

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-/]+)$ 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

你到底想做什么?