0

我有一个允许用户创建和构建网站的应用程序。我们称之为system.com。当用户创建一个具有他们已转发到我们的名称服务器的域(例如domain.com)的站点时,它会创建文件夹并通过 cPanel API 将他们的域添加到我们的服务器到一个文件夹,如system.com/[user id]/[站点 ID]/。在该文件夹中有一个 index.php 文件和一个 .htaccess 文件,内容如下:

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^(.*)/$ index.php?page=$1 [L]

我不会从那里详细介绍它的工作原理,但基本上用户可以创建类似domain.com/something/something-else/的页面。“某物”文件夹显然并不真正存在,我们的系统只是从 htaccess 中获取它们并从那里开始。

我的问题是domain.com/something/something-else/有效,但domain.com/something/something-else返回 404。我一直在做研究并尝试了很多事情,但似乎无法使其正常工作。有任何想法吗?提前致谢。

编辑

我应该提到到目前为止我所尝试的。我尝试将重写规则更改为无论斜杠如何工作,如下所示:

RewriteRule ^(.*)(?/$) index.php?page=$1 [L]

以及其他变化。

我也尝试了不同的方法来强制使用斜杠,但这些方法都没有奏效。

4

2 回答 2

2

我认为您希望您的规则如下所示:

RewriteRule ^(.*)/?$ index.php?page=$1 [L]

其中说:“任何数量的任意字符(可选地后跟斜杠)都应更改为 index.php?page=$1 其中 $1 是您在斜杠之前找到的字符。如果这个匹配,也请忽略您找到的任何其他规则。”

于 2012-11-18T21:56:00.853 回答
0

它基于您的 url 重写访问规则..

RewriteRule ^(.*)/$ index.php?page=$1 [L]

如您所见,index.php?page=$1别名为/,所有请求都发送到 index.php

于 2012-05-03T06:45:46.147 回答