| « 在帖子里发布图片的几种办法 | b2evolution 汉化文件更新通知 » |
为博主提供个性化网址的安排及改进(续)
为博主提供个性化网址的安排及改进(续)
《为博主提供个性化网址的安排及改进》的帖子发表后,网友hong指出,有些做法可以通过设置.htaccess文件,利用Linux服务器上的rewrite功能来实现。
我原先没有考虑用.htaccess文件设置的办法,主要是因为这个办法只能用在Linux服务器上。后来了解到IIS服务器上,也可以通过安装Helicon的ISAPI_rewrite,然后在httpd.ini(或者httpd.conf)上添加类似的设置。目前我没有IIS服务器的试验平台,可是从原理上说,httpd.ini(或者httpd.conf)与.htaccess的设置要求应该是相同的或者相似的。在这里我把.htaccess的用法写出来。
在Linux服务器上,.htaccess文件其实就是httpd.conf的一个部分,只不过管理权限不同。一般地说,httpd.conf的设置对整个服务器生效,所以这个文件由系统管理员管辖。而.htaccess文件只对虚拟服务器或者具体的子目录生效,因此可以由不同档次的服务器管理员负责。所以在由ISP服务商提供的Linux平台上,.htaccess文件的用途很大。我这里只涉及到通过改写使博客网址个性化的话题。
(继续)
首先把我们要实现的目标说清楚。我们的目的是向博主提供一个比较简便明了的网址。比如说,从上文了解到,博主张先生的博客的序列号是5,博主标签是john,那么他的博客的安装网址是
http://domain_name/blogs/blog5.php
通过上篇帖子介绍的方法,我们可以把这个网址个性化成
http://domain_name/blogs/john.php
现在,通过使用改写,我们希望把这个网址进一步简约成
当然,这里我们还必须确定服务器上没有一个真实的名为/john的子目录的存在。下面是.htaccess文件的内容:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/john/?$
RewriteRule ^john/?$ /blogs/blog5.php
RewriteCond %{REQUEST_URI} ^/john/(.+)$
RewriteRule ^john/(.+)$ /blogs/blog5.php?$1
这个.htaccess文件必须存放在服务器的根目录位置上(docroot)。如有必要,可以把blog5.php改成其他的现有的文件名。
先试试一试看这个文件能不能工作。以管理员身份进入博客管理,在网址一项选择“绝对网址”,并且输入http://domain_name/john/这个参数。保存变化,然后以http://domain_name/john/打开博客。
现在回头看一看.htaccess文件的内容。第一句是启动RewriteEngine功能。接下来的两对语句,共同为把“/blogs/blog5.php”改写成“/john/”效力。每一对中的第一句是条件语句,第二句是执行语句。第一对用在网址不带参数的情况,第二对用在有带有不同参数的情况。两者缺一不可。
由于缺乏对博客序号与博客标签之间的对应关系,目前这个.htaccess文件的写法还比较呆板,每增加一个博客就要增添四行语句,管理起来比较麻烦,而且这样添加下去,也会影响到系统的服务效率。解决的办法在于——首先为每个博主建立一个与博主标签相呼应的php文件,然后对.htaccess文件稍加改进就可以了。
假设我们的下一个博主李小姐的博客标签是mary,而且我们已经在/blogs/下建立的相应的john.php和mary.php。现在先把.htaccess文件修改如下,
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(john|mary)/?$
RewriteRule ^(john|mary)/?$ /blogs/$1.php
RewriteCond %{REQUEST_URI} ^/(john|mary)/(.+)$
RewriteRule ^(john|mary)/(.+)$ /blogs/$1.php?$2
最后到管理界面上,把李小姐的博客网址设置为http://domain_name/mary/这个“绝对网址”。这样,就可以为李小姐提供一个相对简约的个性化网址。
以后凡是有新的博主加入,都可以先建立与博主标签对应的.php文件,然后把这个博主标签用“|[博主标签]”格式,加入到.htaccess的相应语句里。
4条评论
第二:中文的标签我这边怎么使用不了,点中文标签进不去
第三:用管理回复帖子会出现一个错误提示大概的内容是:
无效请求!
您请求的参数是无效的。
如果您在使用网站的某个连接时出现这个错误,请把这个连接报告给管理员。
返回主页
关于这个错误的进一步的信息:
«pb»参数中带有无效数值!
关于中文标签和回帖问题,看来都和你的服务器的请求处理有关——客户端生成的请求在送回到b2e之前,可能已经被过滤改写了。最好能有一个干净的测试环境,先把所有的和网址处理的内容去掉,否则很难诊断。
最近评论