0

我正在尝试编写可以转换的 htaccess 文件

http://subdomain.my-tld.com/

http://my-tld.com/file.php?var=subdomain

注意 tld 中的连字符

这是我正在使用的 htaccess

Options +FollowSymLinks 
Options -Indexes

RewriteEngine On 

# Rewrite sub domains. 
RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{HTTP_HOST} !^www\.my-tld\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.my-tld\.com$ [NC]
RewriteRule ^(.*)$ /file.php?var=%2 [QSA,L]

实际上,我在同一台服务器上的另一个域中使用了相同的代码,它运行良好,但不适用于这个域,我猜问题出在这个域中的连字符..

有什么建议么?

4

1 回答 1

0

对我来说,这些规则使服务器返回“内部服务器错误”,并且错误日志将打印

由于可能的配置错误,请求超出了 10 个内部重定向的限制

我不确定为什么它适用于您所说的另一个域,但只需尝试在最终 RewriteRule 之前添加此条件:

RewriteCond %{QUERY_STRING} !var=

让它通过 url alreay 得到参数“var”。

于 2013-12-21T02:17:47.977 回答