1

我希望请求http://user1.domain.com

现在我有以下.htaccess:

RewriteEngine On
RewriteBase /

# Protect the htaccess file
<Files .htaccess>
Order Allow,Deny
Deny from all
</Files>

# Disable directory browsing
Options All -Indexes

RewriteCond %{HTTP_HOST} !^www.domain.com
RewriteCond %{HTTP_HOST} !^admin.domain.com
RewriteCond %{HTTP_HOST} ([^.]+).domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/site-client/site.php?site=%1 [L]

成功调用http://www.domain.com/site-client/site.php?site=user1 URL,但它显示给用户。我怎样才能避免这种情况?

4

1 回答 1

1

您需要摆脱http://www.domain.comyorRewriteRule目标的一部分。它告诉 mod_rewrite 你想要一个 302 重定向。所以你的规则应该是这样的:

RewriteCond %{HTTP_HOST} !^www.domain.com
RewriteCond %{HTTP_HOST} !^admin.domain.com
RewriteCond %{HTTP_HOST} ([^.]+).domain.com [NC]
RewriteCond %{REQUEST_URI} !^/site-client/site.php
RewriteRule ^(.*)$ /site-client/site.php?site=%1 [L]

编辑:您还需要检查以防止规则循环

于 2012-07-24T07:43:29.120 回答