有没有办法在不使用mod_rewrite和.htaccess的情况下重写我的网址?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有没有办法在不使用mod_rewrite和.htaccess的情况下重写我的网址?相关的知识,希望对你有一定的参考价值。

有没有办法重写我的网址:

http://www.website.com/notification.php

http://www.website.com/notification

我没有权限打开mod_rewrite,我们的组织也不想要它。有没有办法用php实现这一点?

提前致谢

答案

如果您只有几页,则可以重命名文件index.php并将其移动到具有所需名称的目录中。

所以notification.php成为notification/index.php,你可以用网址/notification/notification/访问它。

这种方法的缺点是,你得到一个混乱的文件夹结构,每个文件都被命名为index.php。你可以绕过后面的问题,如果你在每个文件夹中放置某种包装文件,它调用实际的脚本 - 但文件夹结构保持不变。


另一种方法是使用某些伪重写与?开头的url。所以你可以调用访问你的文件,如website.com/?notification。在这种情况下,您必须将所有路由逻辑放在位于index.php/中。关于这一点的好处是,你的网址保持灵活,你不必创建一些奇怪的文件系统结构。不好的是,你必须在每个网址中保留问号。

另一答案

html5介绍history.pushState()

pushState()接受三个参数:状态对象,标题(当前被忽略)和(可选)URL。

示例: -

网址: - http://www.website.com/notification.php

window.history.pushState('notification.php', 'Title', 'notification');
另一答案

我相信你可以“简单地”做到这一点:

<Location "/notification">
  SetHandler application/x-httpd-php
</Location>

如果你这样做,我希望你使用灵活的请求路由器,因为你将使用REQUEST_URI很多。由于apache不会费心寻找文件或其他任何东西AFAIK,所以你必须自己返回静态资源(图像,样式表,js等)。

无论如何,您似乎可以在.htaccess文件中使用它,因此您不需要打扰服务器的主配置。

见:https://httpd.apache.org/docs/2.4/mod/core.html#sethandler

以上是关于有没有办法在不使用mod_rewrite和.htaccess的情况下重写我的网址?的主要内容,如果未能解决你的问题,请参考以下文章

apache mod_rewrite 不工作或未启用

电脑中了病毒,word和execl等文件打不开,每个文件夹中都留下了一个README.hta文件,求救!!!

在 vbscript 中使用 HTA

使用 mod_rewrite 配置 mod_jk

HTA 中的 JavaScript 版本

点击用户账户出现res://C:\WINDOWS\system32\nusrmgr.cpl/nusrmgr.hta有啥解决办法