如何使用查询字符串将 URL 重写为底层文件系统路径?
How do I rewrite my URL to the underlying filesystem path with a query string?
我需要 URL 重写方面的帮助。我想让这个 URL (https://example.test/bet/r/?r=fad5v
) 看起来像这样 (https://example.test/bet/fad5v
).
执行此操作的最佳方法是什么,以便在访问 https://example.test/bet/fad5v
时打开实际的 URL https://example.test/bet/r/?r=fad5v
.
任何帮助将不胜感激。
在根 .htaccess
文件的顶部附近尝试以下操作:
RewriteEngine On
RewriteRule ^bet/([^/.]+)$ bet/r/index.php?r= [L]
更新: 从评论来看,您似乎已经将此指令放在 /bet
子目录的 .htaccess
中(即 /bet/.htaccess
), 不是上面说的文档根目录
如果您使用的是 /bet/.htaccess
文件,则需要将上述指令修改为:
RewriteEngine On
RewriteRule ^([^/.]+)$ r/index.php?r= [L]
建议尽可能限制正则表达式,以免与其他资源冲突(例如,此代码是否只能由小写字母 a-z 和数字组成?)。您会注意到我已将点添加到字符 class 以避免与实际文件冲突(如您在评论中所述)。
我需要 URL 重写方面的帮助。我想让这个 URL (https://example.test/bet/r/?r=fad5v
) 看起来像这样 (https://example.test/bet/fad5v
).
执行此操作的最佳方法是什么,以便在访问 https://example.test/bet/fad5v
时打开实际的 URL https://example.test/bet/r/?r=fad5v
.
任何帮助将不胜感激。
在根 .htaccess
文件的顶部附近尝试以下操作:
RewriteEngine On
RewriteRule ^bet/([^/.]+)$ bet/r/index.php?r= [L]
更新: 从评论来看,您似乎已经将此指令放在 /bet
子目录的 .htaccess
中(即 /bet/.htaccess
), 不是上面说的文档根目录
如果您使用的是 /bet/.htaccess
文件,则需要将上述指令修改为:
RewriteEngine On
RewriteRule ^([^/.]+)$ r/index.php?r= [L]
建议尽可能限制正则表达式,以免与其他资源冲突(例如,此代码是否只能由小写字母 a-z 和数字组成?)。您会注意到我已将点添加到字符 class 以避免与实际文件冲突(如您在评论中所述)。