Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 转发在URL中使用WWW的用户_Php - Fatal编程技术网

Php 转发在URL中使用WWW的用户

Php 转发在URL中使用WWW的用户,php,Php,我网站上的每个用户都有自己的用户名URL,比如username.example.com。我知道有时候人们在URL前面键入www。当用户这样做时,系统会将他们重定向到frontpage。有没有办法(1)检测www,(2)用户名和(3)使用PHP将用户转发到username.example.com,而不是www.username.example.com 这不是一个与DNS相关的问题 RewriteEngine On Options +Followsymlinks RewriteBase / Rewr

我网站上的每个用户都有自己的用户名URL,比如
username.example.com
。我知道有时候人们在URL前面键入
www
。当用户这样做时,系统会将他们重定向到frontpage。有没有办法(1)检测
www
,(2)用户名和(3)使用PHP将用户转发到
username.example.com
,而不是
www.username.example.com

这不是一个与DNS相关的问题

RewriteEngine On
Options +Followsymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} .
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{REQUEST_FILENAME} !^.*/images/.*$
RewriteCond %{REQUEST_FILENAME} !^.*/uploads/.*$
RewriteCond %{HTTP_HOST}<>%{REQUEST_URI} ^([^.]+)\.bloggify\.no(:80)?<>/([^/]*) [NC]
RewriteCond %1<>%3 !^(.*)<>\1$ [NC]
RewriteRule ^(.*)$ - [E=BLOGUSER:%1]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^$ /index.php?w=%1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^page([0-9]+)/([^/]+)?$ /index.php?w=%1&page=$1$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^profiles/([^/]+)/([^/]+)?$ /profile.php?u=$1$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^profiles/?$ /profile.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^albums/([^/]+)/([^/]+)?$ /album.php?u=$1$2 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive/(.*)/(.*)/([^/]+)?$ /archive.php?w=%1&y=$1&m=$2$3 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive\.php/(.*)/(.*)/([^/]+)?$ /archive.php?w=%1&y=$1&m=$2$3 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive/(.*)/([^/]+)?$ /archive.php?w=%1&y=$1$2 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive\.php/(.*)/([^/]+)?$ /archive.php?w=%1&y=$1$2 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive/([^/]+)?$ /archive.php?w=%1$1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^archive\.php/([^/]+)?$ /archive.php?w=%1$1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^friends/([^/]+)?$ /friends.php?w=%1$1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^friends\.php/([^/]+)?$ /friends.php?w=%1$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/friends/page([0-9]+)/([^/]+)?$ /friends.php?w=$1&page=$2$3 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^([0-9]+)/([^/]+).html$ /entry.php?w=%1&e_id=$1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^([0-9]+)/([^/]+)?$ /entry.php?w=%1&e_id=$1$2 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^&([^/]+)?$ /index.php?w=%1&$1 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^([^/]+)/([^/]+)?$ /index.php?w=%1&category=$1$2 [L]
RewriteCond %{ENV:BLOGUSER} ^(.+)$
RewriteRule ^([^/]+)/page([0-9]+)/([^/]+)?$ /index.php?w=%1&category=$1&page=$2$3 [L]
重新编写引擎打开
选项+Followsymlinks
重写基/
重写cond%{HTTP_HOST}。
重写cond%{HTTP_HOST}^www\。[北卡罗来纳州]
重写cond%{REQUEST_FILENAME}!^*/图像/*$
重写cond%{REQUEST_FILENAME}!^*/上传/*$
重写cond%{HTTP\u HOST}%{REQUEST\u URI}^([^.]+)\.bloggify\.no(:80)?/([^/]*)[NC]
重写秒%1%3^(.*)\1$[NC]
重写规则^(.*)-[E=BLOGUSER:%1]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^$/index.php?w=%1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^page([0-9]+)/([^/]+)?$/index.php?w=%1&page=$1$2[L]
重写cond%{REQUEST_FILENAME}-F
重写规则^profiles/([^/]+)/([^/]+)?$/profile.php?u=$1$2[L]
重写cond%{REQUEST_FILENAME}-F
重写规则^profiles/?$/profile.php[L]
重写cond%{REQUEST_FILENAME}-F
重写规则^albums/([^/]+)/([^/]+)?$/album.php?u=$1$2[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive/(.*)/(.*)/([^/]+)?$/archive.php?w=%1&y=$1&m=$2$3[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive\.php/(.*)/(.*)/([^/]+)?$/archive.php?w=%1&y=$1&m=$2$3[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive/(.*)/([^/]+)?$/archive.php?w=%1&y=$1$2[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive\.php/(.*)/([^/]+)?$/archive.php?w=%1&y=$1$2[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive/([^/]+)?$/archive.php?w=%1$1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^archive\.php/([^/]+)?$/archive.php?w=%1$1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^friends/([^/]+)?$/friends.php?w=%1$1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^friends\.php/([^/]+)?$/friends.php?w=%1$1[L]
重写cond%{REQUEST_FILENAME}-F
重写规则^([^/]+)/friends/page([0-9]+)/([^/]+)?$/friends.php?w=$1&page=$2$3[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^([0-9]+)/([^/]+).html$/entry.php?w=%1&e_id=$1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^([0-9]+)/([^/]+)?$/entry.php?w=%1&e_id=$1$2[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^&([^/]+)?$/index.php?w=%1&$1[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^([^/]+)/([^/]+)?$/index.php?w=%1&category=$1$2[L]
重写条件%{ENV:BLOGUSER}^(+)$
重写规则^([^/]+)/page([0-9]+)/([^/]+)?$/index.php?w=%1&category=$1&page=$2$3[L]
由于“这不是一个与DNS相关的问题”,我假设您有一个通配符DNS条目设置,并且您的web服务器设置为加载单个文档根目录,而不考虑输入的子域。之后,您只需检查
$\u SERVER['HTTP\u HOST']
即可获得完整的域。用“.”分解()并检查
[0]
是否为
www
,然后发送301重定向(永久移动)到不带
www


您也可以使用apache中的mod_rewrite来完成这项工作。您可以编写一个RewriteCond,检查
%{HTTP\u HOST}
是否以
www
开头,然后捕获模式中url的其余部分,并编写一个执行301重定向的RewriteRule。

正如@George在其评论中指出的,您可能是在web服务器级别执行此类url重写的最佳服务器,虽然可以在PHP中通过调查
$\u SERVER['SERVER\u NAME']
$\u SERVER['HTTP\u HOST']]
的值(使用哪一个取决于服务器配置)并通过在PHP中发送头(即
头('Location:http://username.domain.com“);

PHP不运行web服务器。检查您正在使用什么产品来主持您的网站。Apache通常用于此目的。不要告诉用户他们的URL是
username.example.com
。这完全是错误的,
username.example.com
不是有效的URL。告诉您的用户,他们的URL是
http://username.example.com
。我怀疑没有人会想使用
http://www.username.example.com
用重写规则@Oswald bad advice“修复”这一点都不重要-你实际上是在说“这样做,然后假设它永远不会发生”。@AD7six我的主要观点是,不要以错误的方式使用URL等技术术语。