.htaccess 在域 ip 中使用 ~user 参数进行路由 (apache UserDir)
.htaccess routing in domain ip with ~user parameter (apache UserDir)
我在 PHP 开发了一个应用程序,通过 .htaccess
使用路由系统,直到今天,我已经成功地在任何服务器环境中部署这个应用程序,没有任何问题。
今天,我的一个客户要求我将应用程序部署到尚未关联任何域的服务器上,因此,他向我提供了 IP 地址,让我测试是否一切正常。问题是这个 IP 需要用户名参数出现在 URL 中,这导致执行总是被重定向到服务器默认的 404 错误页面。
IP是这样的(部分值已更改):
http://192.185.65.31/~gef/
如果我只执行那个 link 而没有任何其他参数,我可以访问我的 serverindex.php
文件,该文件被配置为我在 .htaccess
中的 DirectoryIndex
。
但是,如果我尝试添加更多参数,例如语言 (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
)
您有目标脚本的相对路径。您可能需要添加一个 RewriteBase
才能正常工作,例如
RewriteBase /~gef/
我在 PHP 开发了一个应用程序,通过 .htaccess
使用路由系统,直到今天,我已经成功地在任何服务器环境中部署这个应用程序,没有任何问题。
今天,我的一个客户要求我将应用程序部署到尚未关联任何域的服务器上,因此,他向我提供了 IP 地址,让我测试是否一切正常。问题是这个 IP 需要用户名参数出现在 URL 中,这导致执行总是被重定向到服务器默认的 404 错误页面。
IP是这样的(部分值已更改):
http://192.185.65.31/~gef/
如果我只执行那个 link 而没有任何其他参数,我可以访问我的 serverindex.php
文件,该文件被配置为我在 .htaccess
中的 DirectoryIndex
。
但是,如果我尝试添加更多参数,例如语言 (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
)
您有目标脚本的相对路径。您可能需要添加一个 RewriteBase
才能正常工作,例如
RewriteBase /~gef/