0

我正在为运行多个 JS 应用程序包的系统编写默认的 .htaccess。我希望 URL 重写以从根目录转发以运行这些应用程序(即,如果系统包含在www/中,则www/appname/应该转发到server.index.php?app=appname)。

这大致是我现在所拥有的(我将跳过我的 .htaccess 中的其他内容)。

RewriteRule ^use/?([^/]*)/?([^/]*)/?([^/]*)/? \server/index.php?app=$1&servable=$2&action=$3
RewriteRule ^web/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1

如您所见,我目前使用两个端点:使用转发到后端的任何操作,而Web转发到实际将应用程序本身作为 HTML 文档提供服务的操作。在后一种情况下,我基本上想跳过 URL 中的web/前缀,但不会妨碍对系统目录中已经存在的自然目录的访问。

这是完整的来源。(如您所见,我的 .htaccess 可能还有其他问题,所以如果您有任何指示,我很乐意修复它们。)

4

1 回答 1

0

在后一种情况下,我基本上想跳过 URL 中的 web/ 前缀,但不会妨碍对系统目录中已经存在的自然目录的访问。

您可以使用条件标志-f-d. 因此,如果您在/web规则上方包含这些条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

意味着请求的 URI 不映射到现有文件或目录,然后:

RewriteRule ^/?([^/]*)/? \server/index.php?servable=clients&action=web&app=$1

除了没有这/web部分。

于 2012-10-02T06:45:55.673 回答