htaccess - 隐藏文件扩展名并只保留变量的值
htaccess - hide file extension and keep only value of a variable
原始 url - example.com/art.php?a=lorem
想要显示为 - example.com/art/lorem
litespeed
服务器 - htaccess 已启用
RewriteEngine ON
RewriteRule ^art/(.*)$ /art.php?a= [L]
不起作用
url 仍然是 - example.com/art.php?a=lorem
请帮忙
您只有一个重写规则来重写 example.com/art/lorem
,但是您缺少一个重定向规则来将 example.com/art.php?a=lorem
重定向到 example.com/art/lorem
。
您可以使用:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+art\.php\?a=([^\s&]+) [NC]
RewriteRule ^ /art/%1? [R=301,L]
RewriteRule ^art/([\w-]+)/?$ art.php?a= [L,QSA]
THE_REQUEST
变量表示 Apache 从您的浏览器收到的原始请求,并且在执行其他重写指令后不会被覆盖。此变量的示例值为 GET /index.php?id=123 HTTP/1.1
参考文献:
原始 url - example.com/art.php?a=lorem
想要显示为 - example.com/art/lorem
litespeed
服务器 - htaccess 已启用
RewriteEngine ON
RewriteRule ^art/(.*)$ /art.php?a= [L]
不起作用
url 仍然是 - example.com/art.php?a=lorem
请帮忙
您只有一个重写规则来重写 example.com/art/lorem
,但是您缺少一个重定向规则来将 example.com/art.php?a=lorem
重定向到 example.com/art/lorem
。
您可以使用:
RewriteEngine On
RewriteCond %{THE_REQUEST} \s/+art\.php\?a=([^\s&]+) [NC]
RewriteRule ^ /art/%1? [R=301,L]
RewriteRule ^art/([\w-]+)/?$ art.php?a= [L,QSA]
THE_REQUEST
变量表示 Apache 从您的浏览器收到的原始请求,并且在执行其他重写指令后不会被覆盖。此变量的示例值为 GET /index.php?id=123 HTTP/1.1
参考文献: