6
我写了下面的规则在.htaccess的.htaccess子域参数在查询字符串无法访问
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com
RewriteCond %1 !^www$ [NC]
RewriteCond %{REQUEST_URI} ^/news/news-details\.php$
RewriteRule (.*) news.php?div=%1
它的作用是传输请求的news.php文件与DIV变量为news/news-details.php
。我不需要div这样。我需要使用域名写入的子域名的值,例如用户来自user.domain.com/news/news-details.php
。我需要news.php文件中的div变量为用户,即news.php?div=user
。
编辑: 这里现在是.htaccess的代码,它是根新闻详情页选项
+FollowSymLinks
RewriteEngine on
# For Accessing News Details Page for root http://www.domain.com/news/news-details.php
RewriteCond %{HTTP_HOST} ^www.domain\.com [NC]
RewriteRule ^news/news-details.php$ news.php [QSA,NC,L]
# For Accessing News Details Page http://user.domain.com/news/news-details.php
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com [NC]
RewriteCond %{HTTP_HOST) !^www\.
RewriteRule ^news/news-details.php$ news.php?div=%1 [QSA,NC,L
# For www.domain.com it should go to the index page
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$ [NC]
RewriteRule ^(.*)$ index.php [NC,L]
# For Accessing Divisions Page user.domain.com should go to domain.com/divisions.php?division=user
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$
RewriteRule ^$ /divisions.php?division=%1 [L]
再次编辑导致问题:
下面这两个规则是冲突的
# For www.domain.com it should go to my-index.php page
#
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*)$ my-index.php [NC,L]
# For Page URL http://www.domain.com/news/news-details.php
#
RewriteCond %{REQUEST_URI} ^/news/news\-details\.php [NC]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ my-news.php [NC,QSA,L]
是的,这是工作的动态域名,但是当我输入www.domain.com/news/news-details.php它带我到索引文件。我希望这个指向没有用户参数的同一个新闻文件?你怎么做 – HardCode
你的意思是当我输入:www.domain.com我看到news.php(没有参数),当我使用:user.domain.com我使用:php?user = user? –
不,当我输入www.domain.com/news/news-details.php它应该去news.php,但没有参数和子域你写的代码工作正常。但是现在当我输入www.domain.com/news/news-details.php时,它会带我到index.php文件中。不是news.php? – HardCode