htaccess在tld中用连字符重写规则

时间:2013-12-20 23:18:02

标签: php apache .htaccess tld hyphen

我正在尝试编写将转换的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]

实际上,我在同一台服务器上为另一个域使用相同的代码并且它运行良好,但它不适用于此域,我猜这个域中的连字符是问题所在。< / p>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

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

  

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

我不知道为什么它适用于另一个域,如你所说,但只是尝试在最终的RewriteRule之前添加这个条件:

RewriteCond %{QUERY_STRING} !var=

让它传递url alreay get param“var”。