我们很少有开发人员在本地Apache
服务器上工作。
我们设置了一些关于本地开发环境结构的基本规则,因为我们想要一个适用于所有人的.htaccess文件。
结构非常简单:
本地主机/〜用户名/ API / api_request_request
我试图创建一个RewriteRole,它将自定义变量存储在/ ~username / part中,因为它因开发人员而异。
这是我到目前为止所得到的:
#Set the base in case of local development
RewriteCond %{HTTP_HOST} ^(.*)localhost(.*)$
#Here only the /~username should be captured
RewriteRule ^(.*)$ $1 [E=LOCAL_BASE:$1]
#Set the base in case of local development
RewriteCond %{HTTP_HOST} !^(.*)localhost(.*)$
RewriteRule ^(.*)$ $1 [E=LOCAL_BASE:production.server.com]
RewriteRule ^(.*)$ %{HTTP_HOST}/%LOCAL_BASE/api/index.php?request=$1 [QSA,NC]
问题在于,在第一个RewriteCond中,我不知道如何只捕获〜用户名部分
答案 0 :(得分:1)
你可以用一个不那么复杂的逻辑来做到这一点
# LOCAL environment
RewriteCond %{HTTP_HOST} localhost [NC]
RewriteRule ^([^/]+)/(.*)$ /$1/api/index.php?request=$2 [L]
# REMOTE environment
RewriteCond %{HTTP_HOST} !localhost [NC]
RewriteRule ^(.*)$ /production.server.com/api/index.php?request=$1 [L]