我该如何让https://example.com/channels/[channel_name]/[video_id]
出现在地址栏中,但让我的 PHP 脚本看到https://example.com/channels?channel=[channel_name]&v=[video_id]
?鉴于[channel_name]
和[video_id]
不是真正的目录。
答案1
我可以在这里找到我所寻找的一个可行的示例:
https://www.taniarascia.com/rewrite-query-string-to-path-with-htaccess/
有问题的代码如下所示:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?users/(.*?)/?$ /users.php?name=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users\.php\?name=([^\&\ ]+)
RewriteRule ^/?users\.php$ /users/%1? [L,R=301]
在哪里http://example.com/users/tania输出为http://example.com/users.php?name=tania,这正是我所寻找的行为。
我理解前四行的作用。有人能解释一下最后两行是干什么的吗?我已经在https://htaccess.madewithlove.be/,并且删除最后两行似乎对输出没有影响。