根据调用路径,使用 htaccess 将路径重写为不同的 url

Rewrite a path with htaccess to different urls, based on calling path

提问人:musicarr 提问时间:3/12/2023 更新时间:3/12/2023 访问量:48

问:

我一直在努力根据调用 url 路径中的内容重定向到两个不同的 url(文件),即:

example.com/rh/xxxxx/ -> user.php?a=xxxxx

example.com/rh/xxxxx/yyyyy/ -> 记录.php?a=xxxxx&b=yyyyy

这是我到目前为止所拥有的,它不起作用。

RewriteCond %{REQUEST_URI} ^/rh/[^/]*/[^/]*/?$ [NC]
RewriteRule ^/rh/([^/]*)/([^/]*)/?$ record.php?a=$1&b=$2 [L,NC]

RewriteCond %{REQUEST_URI} ^/rh/[^/]*/?$ [NC]
RewriteRule ^/rh/([^/]*)/?$ user.php?a=$1 [L,NC]

任何帮助都非常感谢。谢谢

apache .htaccess mod-rewrite 重写friendly-url

评论

0赞 musicarr 3/15/2023
@RavinderSingh13 - 不行。清除了浏览器和DNS缓存,但出现404错误。如果我删除 rh/,那么我每次都会得到用户 .php 页面。奇怪。
0赞 RavinderSingh13 3/15/2023
你能提到你的htaccess和php文件的路径一次吗?看起来 404 表示 apache 找不到文件
0赞 musicarr 3/15/2023
“rh”目录距离 HTML 根目录深一级:/rh/。htaccess文件将在这里:/rh/.htaccess。文件将在这里:/rh/recored.php 和 /rh/user.php。

答:

2赞 RavinderSingh13 3/12/2023 #1

对于您显示的示例,请尝试以下 .htaccess 规则文件。请确保将 .htaccess 规则文件与 和 一起保留。record.phpuser.php

请务必在测试 URL 之前清除浏览器缓存。

RewriteEngine ON
##Rewrite rule for example.com/rh/xxxxx/yyyyy/ -> record.php?a=xxxxx&b=yyyyy
RewriteRule ^rh/([^/]*)/([^/]*)/?$ record.php?a=$1&b=$2 [L,NC]

##Rewrite rule for example.com/rh/xxxxx/ -> user.php?a=xxxxx
RewriteRule ^rh/([^/]*)/?$ user.php?a=$1 [L,NC]