如何使用htaccess和php控制多级子域
我有以下动态URL 我的.htaccess文件中有以下内容如何使用htaccess和php控制多级子域,php,.htaccess,Php,.htaccess,我有以下动态URL 我的.htaccess文件中有以下内容 RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC] RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC] RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L] 它工作正常,显示了与foo子域相关的数据。但是当我试图去拜访 其中,foo是一个通配符dns子域
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC]
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L]
它工作正常,显示了与foo子域相关的数据。但是当我试图去拜访
其中,foo是一个通配符dns子域,bla是我的帖子标题,9是帖子id
我补充说
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L]
之后
所以我的htaccess代码变成了
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.domain\.com$ [NC]
RewriteRule !^index\.php($|/) sub.php?name=%2 [PT,L]
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L]
它仍然显示其主页,即sub.php而不是post.php
我应该对我的.htaccess文件做什么更改?你真的需要在这里打两个问号吗:post.php??name=%2&post=$1&postd=$2我单独用php解决了这个问题。对我来说,它比Apache.htaccess脚本更简单。。。而且更易于维护(一旦编写脚本),并具有更多功能 我使用了一个.htaccess,它将所有访问重定向到一个文件。这一个使用$\u SERVER[“SERVER\u NAME”]变量检查访问的子域,其余部分使用$\u GET[“q”]中的变量 这是.htaccess文件:
RewriteEngine on
RewriteRule ^redir.php$ redir.php [L,QSA]
RewriteRule ^(.*)$ redir.php?q=$0 [L,QSA]
第一个确保没有无限循环,第二个将所有内容重定向到文件
然后,redir文件包括所需的任何文件,而且它非常简单-将$\u服务器[“QUERY\u STRING”],$\u GET变量设置为新值,将cwdir设置为更改工作目录(文件),设置_include\u路径(包括路径)
它起作用了。但这有点傻:D
RewriteEngine on
RewriteRule ^redir.php$ redir.php [L,QSA]
RewriteRule ^(.*)$ redir.php?q=$0 [L,QSA]