[英]how can i control multi level subdomains with htaccess and php
我有以下动态网址
我的.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子域相关的数据。 但是当我尝试访问
http://foo.mydomain.com/anything-9.html
其中foo是通配符DNS子域,而bla是我的帖子标题,而9是帖子ID
我已经添加了
RewriteRule ^/([^/]+)-([^/]+)\.html$ post.php?name=%2&post=$1&postid=$2 [PT,L]
后
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]
所以我的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文件进行哪些更改?
我只用PHP解决了这个问题。 对我来说,它比Apache .htaccess脚本更容易...也更易于维护(一旦编写了脚本)并且具有更多功能。
我使用.htaccess将所有访问重定向到一个文件。 这个使用$ _SERVER [“ SERVER_NAME”]变量检查访问的子域,其余使用$ _GET [“ q”]中的变量。
这是.htaccess文件:
RewriteEngine on
RewriteRule ^redir.php$ redir.php [L,QSA]
RewriteRule ^(.*)$ redir.php?q=$0 [L,QSA]
第一个确保没有无限循环,第二个将所有内容重定向到文件。
然后,redir文件包含所需的任何文件,而且也很简单-$ _SERVER [“ QUERY_STRING”],$ _ GET变量设置为新值,cwdir更改工作目录(文件),set_include_path(包含路径)。
有用。 但这有点愚蠢:D
您是否真的需要在此处添加2个问号:post.php ?? name =%2&post = $ 1&postid = $ 2
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.