Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.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 使用htaccess重写url_Php_.htaccess_Mod Rewrite - Fatal编程技术网

Php 使用htaccess重写url

Php 使用htaccess重写url,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我将简要地告诉你我正在做什么,以及我在哪里需要你的帮助 我正在建立博客托管网站。我完成了CMS,现在我在做用户页面 我的想法是创建.htaccess规则,这样每个用户和博客所有者都有自己的博客URL,比如:XXX.bloghost.com,其中XXX是博客名称或博客所有者名称 请注意,我将在URL中使用另外两个参数,下面是URL的示例: XXX.bloghost.com -> www.bloghost.com/index.php?user=XXX XXX.bloghost.com/NEW

我将简要地告诉你我正在做什么,以及我在哪里需要你的帮助

我正在建立博客托管网站。我完成了CMS,现在我在做用户页面

我的想法是创建.htaccess规则,这样每个用户和博客所有者都有自己的博客URL,比如:
XXX.bloghost.com
,其中
XXX
是博客名称或博客所有者名称

请注意,我将在URL中使用另外两个参数,下面是URL的示例:

XXX.bloghost.com -> www.bloghost.com/index.php?user=XXX

XXX.bloghost.com/NEWS -> www.bloghost.com/index.php?user=XXX&category=NEWS

XXX.bloghost.com/NEWS/SAMPLE -> www.bloghost.com/index.php?user=XXX&category=NEWS&post=SAMPLE
这是我当前的.htaccess文件(已更新):

我真的需要一些帮助。我尝试并遵循了这方面的一些教程,但没有运气


此外,此.htaccess是否可以阻止或重定向所有键入错误或不存在的URL到某个页面?

首先,您必须为通配符配置子域

ServerAlias www.domain.com domain.com *.domain.com
并确保DNS也配置了通配符。而不是像这样使用:

RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [QSA]
所以在这一页之后
http://some.domain.com/news
将转到
http://www.domain.com/some/news
然后像往常一样处理url(仅举个例子):


但我认为第二部分应该用php路由系统来处理。

首先,必须为通配符配置子域

ServerAlias www.domain.com domain.com *.domain.com
并确保DNS也配置了通配符。而不是像这样使用:

RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+).domain.com [NC]
RewriteRule (.*) %2/$1 [QSA]
所以在这一页之后
http://some.domain.com/news
将转到
http://www.domain.com/some/news
然后像往常一样处理url(仅举个例子):


但我认为第二部分应该用php路由系统来处理。

@atma已经处理了真正的重定向。只是用于.htaccess中错误处理的快速附加组件:

ErrorDocument 404 /error.php

轻松点!任何404错误都将被定向到bloghost.com/error.php。替换路径和页面/脚本以显示错误。

@atma已经处理了真正的重定向。只是用于.htaccess中错误处理的快速附加组件:

ErrorDocument 404 /error.php

轻松点!任何404错误都将被定向到bloghost.com/error.php。替换路径和页面/脚本以显示错误。

谢谢Atma,我稍后将尝试此操作并将结果发布在此处。。。cheers m8I刚刚尝试了你的建议,但没有运气URl www.bloghost.com/XXX/NEWS像一个符咒一样工作,但是像XXX.bloghost.com这样的URl给了我“服务器未找到”错误。这是我的.htaccess文件:Options+FollowSymLinks Options+index RewriteEngine On RewriteBase/RewriteCond%{HTTP_HOST}!www.otvorko.net$[NC]RewriteCond%{HTTP_HOST}^(www.)?([a-z0-9-]+).otvorko.net[NC]RewriteRule(+.)%2/$1[L]RewriteRule(+)/(.+)/(.+)blog.php?blog_-id=$1和category=$2和post=$3[L,QSA]RewriteRule(+)/(.+)blog.php?blog-id=$1和category=$2[DNS,QSA]RewriteRule(+)blog.php?blog-id=$1你是否正确配置了web服务器(Apache)对于Apache的通配符?
ServerAlias www.otvorko.net dotvorko.net*.otvorko.net
,以及类似于域dns记录中的
*.otvorko.net A 111.222.33.44
?不确定它是否正确配置…我添加了*.otvorko.net ttl(300)IP在我的主机提供商的控制面板中。可能要等待DNS更新吗?谢谢Atma,我稍后会尝试并在这里发布结果…干杯m8I刚刚尝试了你的建议,但没有运气URl www.bloghost.com/XXX/NEWS很有魅力,但类似XXX.bloghost.com的URl给我“服务器未找到”错误。这是我的.htaccess文件:Options+FollowSymLinks Options+index RewriteEngine On RewriteBase/RewriteCond%{HTTP_HOST}!www.otvorko.net$[NC]RewriteCond%{HTTP_HOST}^(www.)?([a-z0-9-]+).otvorko.net[NC]RewriteRule.*%2/$1[L]RewriteRule(+.+)/(.+)/(.php?blog_id=$1&category=$2&post=$3[L,QSA]RewriteRule++.)blog.php?blog_id=$1和category=$2[L,QSA]重写规则(+)blog.php?blog_id=$1[L,QSA]您是否正确配置了DNS和web服务器(Apache)对于apache的通配符?
ServerAlias www.otvorko.net dotvorko.net*.otvorko.net
,以及域dns记录中类似的
*.otvorko.net A 111.222.33.44
?不确定它是否正确配置…我在主机提供商的控制面板中添加了*.otvorko.net ttl(300)IP。可能要等待dns更新?