.htaccess 为什么htaccess不适用于移动的浏览器?

6ljaweal  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(165)

我有网站(mzadkm.com)尝试重写规则短网址到app.php页。
因此,如果用户浏览“mzadkm.com/app“,将显示“mzadkm.com/app.php“页面

RewriteRule ^/app /app.php [L,R=301]

它的工作在电脑上,但在移动的浏览器给予我404页
有什么想法吗

dojqjjoe

dojqjjoe1#

这可能就是您要寻找的内容:

RewriteRule ^/?app /app.php [L]

文档中明确指出,如果在一个 distributed 配置文件中实现了RewriteRule get中的模式,则该模式将应用于请求的 relative 路径。这意味着您实际上希望在此处匹配路径appnot/app。这就是为什么您的规则没有被应用。^/?app是一个接受 both 路径表示法的变体,relative和absolut,这意味着相同的规则可以在中央配置中实现,也可以在分布式配置文件(“.htaccess”)中实现。
我还冒昧地删除了你显示的外部重定向(“R=301”),因为根据你问题的措辞,这很可能不是你想要的。相反,你想要一个“内部重写”。
但是,你需要注意不要实现重写循环,这将导致请求失败和“内部服务器错误”(http状态500)。
一种方法是:

RewriteEngine on
RewriteRule ^/?app$ /app.php [L]

这里又有一条:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?app /app.php [L]

为什么在你的电脑上看起来一切正常,而在移动的浏览器上却不一样,这一点还不清楚。既然应用了相同的规则,请求看起来也一样,那么一定有其他原因。我怀疑你在某个地方查看了之前尝试的缓存结果。记住,在测试时 * 总是 * 使用一个新的匿名浏览器窗口。并检查你在浏览器网络控制台内收到的响应。

相关问题