1

我正在尝试编写一个 mod_rewrite 来像这样工作

  • wildcard.subdomain.domain.com=>subdomain.domain.com/data.php?q=wildcard
  • wildcard.subdomain.domain.com/?repeat=1=>subdomain.domain.com/data.php?q=wildcard&repeat=1
  • subdomain.domain.com=>data.php
  • www.subdomain.domain.com=>data.php

到目前为止我在 .htaccess 中所做的事情

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On
  RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC]
  RewriteCond %1 !^(www)$ [NC]
  RewriteRule ^.*$ data.php?q=%1 
</IfModule>`
4

3 回答 3

1

对于重复参数使用

RewriteRule ^.*$ data.php?q=%1&%{QUERY_STRING}
于 2012-07-19T20:50:41.217 回答
1

试试这些:

  # This should cover the first 2 cases
  RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC]
  RewriteCond %1 !^(www)$ [NC]
  RewriteRule ^$ /data.php?q=%1&%{QUERY_STRING} [L,QSA]

  # This should cover the last 2
  RewriteCond %{HTTP_HOST} ^([^.]+)\.abc\.def\.com\.br$ [NC]
  RewriteCond %1 ^(www)$ [NC]
  RewriteRule ^$ /data.php?%{QUERY_STRING} [L,QSA]

请注意,这在请求为的情况下不起作用:wildcard.subdomain.domain.com/some/path/to/file.html这些仅匹配请求 URI 为/.

于 2012-07-19T23:59:09.013 回答
0

如果您使用的是 cpanel,您可以创建一个 * 子域 (*.domain.com) 并将其连接到一个目录,然后在该目录中创建一个 index.php:

<?php
echo "<pre>";
print_r($_SERVER);
echo "</pre>";
?>

测试结果,可以从服务器名或服务器主机导出子域名

于 2012-09-05T17:59:34.360 回答