php - 多人游戏使用php空文件名?
问题描述
海伊
所以我想在php上做一个多人游戏,我采用了随机生成链接的方法。
例如 skribbl.io 游戏,它会在按下“创建私人房间”后,创建一个随机链接让您的朋友加入:
skribbl.io/?random_string
like skribbl.io/?h4fwY8Ef
所以对我来说,看起来他们有一个没有名称的 php 文件,他们提供随机字符串作为参数。但我无法制作无名 php 文件。
所以我选择的是每次用户为我的游戏点击“创建私人匹配”时,一个 php 脚本将复制一个已经存在的包含服务器端工作的 php 脚本,但将其命名为 random_string.php 就像y4aHr329sJ.php
玩家会写的那样在 url 中:(
mygame.com/y4aHr329sJ
由于 apache .htaccess 规则而没有 .php)
但缺点是,对于每个想要“创建私人房间”的人,我会在服务器上复制更多不必要的文件。
甚至认为我有一个脚本可以在游戏过期后删除所有过期的 random_string.php 文件(在每天开始时运行脚本并删除 1 天前的文件)
我仍然认为这会适得其反。
顺便说一句,我知道做类似的事情,mygame.com/join?random_string
但我并不特别喜欢它。
另外,我不喜欢 apache .htaccess自动mygame.com/random_string
变成mygame.com/join?random_string
,因为有些玩家喜欢从地址栏中复制链接,而不是从“共享此链接”框中复制链接。
另外,如果有一个没有 skribbl.io 使用的问号的解决方案,我会更喜欢它skribbl.io/*?*random_string
。
您的帮助意义重大。提前致谢!!
解决方案
实际上,您在根文件夹中有一个 index.php 文件,但可以将 apache 配置为从 URL 中隐藏它。
您可以通过放置这些配置来做到这一点(在.htaccess
项目的根目录或虚拟主机配置中)
你需要mod_rewrite
启用。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
如果您想保留 index.html,您可能需要创建如下路径:
/rooms/random-room-name
并处理房间,如:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/rooms/(.*)$ /index.php?room=$1 [L]
推荐阅读
- html - VBA Internet Explorer 网页链接选择
- python - 从列表json.decoder.JSONDecodeError循环时出现python错误:期望值:第1行第1列(char 0)
- excel - VBA For循环填充最后一个条目直到结束
- r - 在 R 中创建带有两个 FOR cicle 的表不会正确填充数据框“Maux”
- reactjs - 为什么我的 onContextMenu 可以工作,但我的右 onClick 不能与 React Router Dom 和 Styled Components 一起使用?
- c++ - 无法在 VScode 中打开源文件
- git - .gitattributes 中禁用的 EOL 转换仅适用于新文件
- git - git bisect 并找到最后一个好的提交 - 我错过了什么吗?
- python - 如何在脚本中更改snakemake.input/snakemake.output的对象类型以创建目录?
- python - 我们如何在数据框中添加一个字段来查找两个数据框中的纬度和经度之间的距离?