0

我在本地和登台服务器上设置了 Web 应用程序。本地应用程序具有不同的暂存基本路径。例如

本地 http://phils-imac.local/git/clients/myproject/html/

暂存 http://myserver.com/myproject/html/

我想使用 htaccess 使没有“html”部分的 url 可以访问。例如 http://phils-imac.local/git/clients/myproject/ http://myserver.com/myproject/

我一直在我的登台服务器上使用这个重写规则:

RewriteEngine On
RewriteCond %{SERVER_NAME} =myserver.com
RewriteCond %{REQUEST_URI} !^/myproject/html/.*$
RewriteRule ^(.*)$ /myproject/html/$1 [L]

它工作正常,但我觉得我需要为每个项目定制它。理想情况下,我希望“myproject”部分是一个变量,并且规则更通用,因此它也适用于我的本地路径。

4

1 回答 1

0

您不能在您的变量中定义变量,.htaccess但如果您保持项目名称相同,您可以在重写规则中容纳变量基本路径为

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} !/html/ [NC]
RewriteRule ^(.*?)/?myproject/(.*)$ $1/myproject/html/$2 [NC,L]

这需要您.htaccess在您的 Web 根目录中。如果您.htaccess位于myproject文件夹中,请尝试以下操作:

RewriteEngine On

RewriteCond %{REQUEST_URI} !/html/ [NC]
RewriteRule ^(.*)$ html/$1 [L]

在这两种情况下,您都需要放弃%{SERVER_NAME}支票,因为它在您的本地和暂存位置之间永远不会匹配。

于 2013-07-17T09:29:05.217 回答