我需要将 domain.com/kiosk/m42 或 domain.com/kiosk/m42/ 重定向到 domain.com/kiosk/?m42 m42 — 是一个可更改的部分,可能是 s41 、p39 或其他...
我已经尝试过了
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)/kiosk/(\w+)/?$
RewriteRule ^ %1/kiosk/?%2&%{QUERY_STRING} [R=301,L]
或
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/kiosk
RewriteRule (.*)/([^/]+)/?$ https://my-bakery.ru/kiosk/?$2 [L,R=301,QSA]
但这效果不太好。我哪里搞错了?
您的问题在细节上有点模糊(我在上面对此进行了评论),但我假设以下应该是您正在寻找的内容:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^([^&=]+)$
RewriteRule ^/?kiosk/?$ /kiosk/%1 [R=301,L]
RewriteRule ^/?kiosk/([^/]+)/?$ /kiosk/?$1 [L,QSA]
您可以在中央http服务器的主机配置中实施此类规则。如果您无权访问该文件(请阅读:如果您使用的是简单的网络空间提供商),您也可以使用distributed配置文件(通常称为“.htaccess”),但通常应首选第一个选项。如果您选择替代方案,您需要确保该文件位于 http 主机
DocumentRoot
文件夹中,该文件夹对于 http 服务器进程是可读的,并且已通过以下方式启用了对此类文件内此类规则的考虑AllowOverride
指令。