0

我已经使用路由系统在 PHP 中开发了一个应用程序,.htaccess直到今天,我已经成功地将这个应用程序部署在任何服务器环境中,没有任何问题。

今天,我的一个客户要求我将应用程序部署到尚未关联任何域的服务器上,因此,他提供了 IP 地址让我测试一切是否正常。问题是这个 IP 要求 URL 中存在用户名参数,这导致执行总是被重定向到服务器默认的 404 错误页面。

IP 是这样的(某些值已更改):

http://192.185.65.31/~gef/

如果我只执行该链接而没有任何其他参数,我可以访问serverindex.php配置为 my DirectoryIndexin 的文件.htaccess。但是,如果我尝试添加更多参数,例如语言 ( en/),我会自动重定向到 404 页面。

我的.htaccess路由配置如下:

DirectoryIndex serverindex.php

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . serverindex.php

此配置始终允许我接收和操作 URL,如下例所示:

Example: http://example.com/param1/param2/param3

Array
(
    [0] => param1
    [1] => param2
    [2] => param3
)

如何设置.htaccess以便我在 URL 中保持用户名不变(以便服务器可以处理它并记录正确的用户帐户),并将以下数据作为参数传递给应用程序?

Example: http://example.com/~username/p1/p2/p3

Array
(
    [0] => p1
    [1] => p2
    [2] => p3
)
4

1 回答 1

2

您有目标脚本的相对路径。您可能需要添加一个RewriteBase才能使其正常工作,例如

RewriteBase /~gef/
于 2016-05-30T16:04:27.697 回答