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,我在.htaccess文件中有一些使用重写引擎的代码,它为我的SERP指定了目录。然而,当某人进入搜索/查询/而不是搜索/查询/页面/时,它会显示404错误。与刚才的search/相同 我希望这样,如果有人只是去搜索/查询/它重定向到搜索/查询/1/和只是搜索/它重定向到我的主页/。我在下面附上了我的代码副本 RewriteEngine on RewriteRule ^search/([^/]+)/([^/]+)/?$ search.php?q=$1&category=web&d

我在.htaccess文件中有一些使用重写引擎的代码,它为我的SERP指定了目录。然而,当某人进入搜索/查询/而不是搜索/查询/页面/时,它会显示404错误。与刚才的search/相同

我希望这样,如果有人只是去搜索/查询/它重定向到搜索/查询/1/和只是搜索/它重定向到我的主页/。我在下面附上了我的代码副本

RewriteEngine on
RewriteRule ^search/([^/]+)/([^/]+)/?$ search.php?q=$1&category=web&d=$2
有人能帮我解决这个问题吗

提前感谢您,Callum

您可以创建多个RewriteRule语句来完成此任务。如果使用中间规则,请确保省略[R]标志


您发布的规则只有在其格式为/search/query/n/时才会重写,因此请编写一个与search/query匹配的正则表达式,将其重定向到/search/query/1。执行相同的操作,无需查询即可重定向回家。

在.htaccess文件中尝试以下两条规则:

RewriteRule ^search/([^/]+)/$ /search/$1/1/ [R=301,L]
RewriteRule ^search/?$ / [R=301,L]

在htaccess中尝试以下代码:

RewriteEngine on
RewriteRule ^search/?$ / [R=301,L]
RewriteRule ^search/([^/]+)/?$ /search/$1/1/ [R=301,L]
RewriteRule ^search/([^/]+)/([0-9]+)/?$ search.php?q=$1&category=web&d=$2 [NC,L]