anwsion系统在nginx,apache,iis下伪静态开启步骤

Anwsion1.0设置Rewrite伪静态
1, 按照系统提示安装Anwsion问答系统
2, 安装完成之后,修改对应网页服务器的配置文件
如果是你安装在网站根目录下:
nginx:在对应的nignx.conf文件里面添加
location / {
if (!-e $request_filename)
{
rewrite (.*) /index.php;
}
}

Apache:在对应的httpd.conf或者.htaccess里面添加
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

IIS6 Rewrite组件:在对应的配置文件httpd.ini里面添加

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /$ /? [L]
RewriteRule ^/topic/(.*) /\?\/topic/$1 [L]
RewriteRule ^/users/(.*) /\?\/users/$1 [L]
RewriteRule ^/notifications/(.*) /\?\/notifications/$1 [L]
RewriteRule ^/inbox/(.*) /\?\/inbox/$1 [L]
RewriteRule ^/follow/(.*) /\?\/follow/$1 [L]
RewriteRule ^/people/(.*) /\?\/people/$1 [L]
RewriteRule ^/setting/(.*) /\?\/setting/$1 [L]
RewriteRule ^/logout/(.*) /\?\/logout/$1 [L]
RewriteRule ^/publish/(.*) /\?\/publish/$1 [L]
RewriteRule ^/feature/(.*) /\?\/feature/$1 [L]
RewriteRule ^/home/(.*) /\?\/home/$1 [L]
RewriteRule ^/account/(.*) /\?\/account/$1 [L]
RewriteRule ^/login/(.*) /\?\/login/$1 [L]
RewriteRule ^/reader/(.*) /\?\/reader/$1 [L]
RewriteRule ^/search/(.*) /\?\/search/$1 [L]
RewriteRule ^/crond/(.*) /\?\/crond/$1 [L]
RewriteRule ^/admin/(.*) /\?\/admin/$1 [L]
RewriteRule ^/invitation/(.*) /\?\/invitation/$1 [L]
RewriteRule ^/m/(.*) /\?\/m/$1 [L]
RewriteRule ^/question/(.*) /\?\/question/$1 [L]
RewriteRule ^/category/(.*) /\?\/home/explore/category/$1 [L]

如果你是安装在:您的域名/xxx/这样的目录下面,对应的配置文件分别为:
nginx:在对应的nignx.conf文件里面添加
location /xxx/ {
if (!-e $request_filename)
{
rewrite (.*) /xxx/index.php;
}
}

Apache:在对应的httpd.conf或者.htaccess里面添加
<IfModule mod_rewrite.c>

RewriteBase /xxx/
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /xxx/index.php 

</IfModule>

IIS6 Rewrite组件:在对应的配置文件httpd.ini里面添加

[ISAPI_Rewrite]
# 3600 = 1 hour
CacheClockRate 3600
RepeatLimit 32
RewriteRule /$ /? [L]
RewriteRule ^/topic/(.*) /\?\/topic/$1 [L]
RewriteRule ^/users/(.*) /\?\/users/$1 [L]
RewriteRule ^/notifications/(.*) /\?\/notifications/$1 [L]
RewriteRule ^/inbox/(.*) /\?\/inbox/$1 [L]
RewriteRule ^/people/(.*) /\?\/people/$1 [L]
RewriteRule ^/setting/(.*) /\?\/setting/$1 [L]
RewriteRule ^/logout/(.*) /\?\/logout/$1 [L]
RewriteRule ^/publish/(.*) /\?\/publish/$1 [L]
RewriteRule ^/feature/(.*) /\?\/feature/$1 [L]
RewriteRule ^/home/(.*) /\?\/home/$1 [L]
RewriteRule ^/account/(.*) /\?\/account/$1 [L]
RewriteRule ^/login/(.*) /\?\/login/$1 [L]
RewriteRule ^/reader/(.*) /\?\/reader/$1 [L]
RewriteRule ^/search/(.*) /\?\/search/$1 [L]
RewriteRule ^/crond/(.*) /\?\/crond/$1 [L]
RewriteRule ^/admin/(.*) /\?\/admin/$1 [L]
RewriteRule ^/invitation/(.*) /\?\/invitation/$1 [L]
RewriteRule ^/m/(.*) /\?\/m/$1 [L]
RewriteRule ^/question/(.*) /\?\/question/$1 [L]
RewriteRule ^/category/(.*) /\?\/home/explore/category/$1 [L]

3, 以管理员身份登录,进入管理后台 => 全局 => 站点功能 => 开启 Rewrite 伪静态:
1.png

4, 在URL 自定义路由每行一条规则,中间使用===隔开,左边为站点默认 URL 模式,右边为替换后的 URL 模式, 链接以 / 开头, (:num) 代表数字, (:any) 代表任意字符。(未来版本会提供一些默认样式)
官网当前的样式规则参考:
/home/explore/===/explore/
/home/explore/(:any)===/explore/(:any)
/home/explore/category-(:num)===/category/(:num)
/account/login/===/login/
/account/logout/===/logout/
/account/setting/(:any)/===/setting/(:any)/
5, 点击保存随即启用伪静态
已邀请:

seeyou - ixidian.org,认真是一种态度!

赞同来自: zhengqiang AWSupport GUANGOD

我已经试验成功了,按照官方的方法完全ok。
官方的方法是没有问题的,只是省略了一些说明,导致小白看不懂。所以我再给各位详细说明一下,我是学生党,技术不到位,有么说的不专业的请见谅。
--------------------------------------------------------------------------------------------------------------------------------
我的配置:
apache服务器,主机商支持伪静态化,wecenter最新版即2.5.10版本。
官方给我的目录为home/xibuus/public_html,然后我直接安装wecenter在public_html下面,那么在与public_html同级下有个.htaccess,然后我直接在里面添加以下代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php
</IfModule>

然后 以管理员身份登录,进入管理后台 => 全局 => 站点功能 => 开启 Rewrite 伪静态。
(官方最新版已经默认增加了两种,我选择了第一种规则。)
最后点击保存随即启用伪静态。
---------------------------------------------------------------------------------------------------------------------------------
如果你在public_html文件夹下面建立一个文件夹存放你的wecenter,那么规则这样写:
<IfModule mod_rewrite.c>
RewriteBase /xxx/
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/index.php
</IfModule>
注意:其中的xxx修改为你存放wecenter的文件名,比如你用的文件名为upload,那么修改后如下:
<IfModule mod_rewrite.c>
RewriteBase /upload/
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /upload/index.php
</IfModule>
--------------------------------------------------------------------------------------------------------------------------
最后,有何疑问可以向我提出,知道的一定会解答。
本地实验成功



------------------------------------------------------------------------------------------------------------------------
在虚拟主机空间上也成功,暂时不贴出地址。@ddddd2222,@猫咪她爹,@乐朋,@余成,@liuze821,@

abcalmas - 正在学习中。。

赞同来自: zq500 有三哥在别怕

我在这边顺便给大加一个规则。基于Linux Apache 的用户,官方写的正确了。只是看起来漏了一个地方:
我来纠正吧。。。其实我的答案不够专业。。。望广大网友试一试,不行再看吗。。我的成功了。
.htaccess 根目录里面写:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

子目录的:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /xxx/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /xxx/index.php [L]
</IfModule>

xxx 是文件目录。

loveminds

赞同来自: zhengqiang

IIS7/8伪静态设置,未测试。
在对应的web.config文件里面添加
<rewrite>
<rules>
<rule name="Rewrite Rule 0">
<match url="^(.*)" />
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>

ddddd2222 - 为wecenter多贡献!

赞同来自: ygm0106

我也没解决伪静态的问题

250

赞同来自:

技术贴,关注

dotor

赞同来自:

关注,技术帖

jinshuo - :

赞同来自:

关注,技术帖

liwenbin

赞同来自:

如果在 windows 主机下的怎么写?

jinshuo - :

赞同来自:

这个我也学习学习。。。

gupuw - 谷普网 www.gupuw.com 谢谢支持

赞同来自:

IIS6 Rewrite组件:在对应的配置文件httpd.ini里面添加

CacheClockRate 3600
RepeatLimit 32
RewriteRule /static/(.*) /static/$1
RewriteRule /uploads/(.*) /uploads/$1
RewriteRule /(.*) /index.php/$1


IIS6 Rewrite组件:在对应的配置文件httpd.ini里面添加

CacheClockRate 3600
RepeatLimit 32
RewriteBase /xxx/
RewriteRule /static/(.*) /static/$1
RewriteRule /uploads/(.*) /uploads/$1
RewriteRule /(.*) /xxx/index.php/$1


有什么区别?

如果我官方的版本没做过别的改动应该使用那个httpd.ini吗?谢谢

猫咪她爹

赞同来自:

为什么用了伪静态规则,全部都访问不了了? 500错误呀。服务器是支持的。

kimwang - 温饱尚未解决,不敢儿女情长。

赞同来自:

为什么我一往IIS里面添加REWRITE组件,整个服务器的站点都无法访问,显示无法找到网页?

yangker2010 - www.hello029.com

赞同来自:

我是windows+iis,规则是:


RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php

乐朋 - IT For You

赞同来自:

我在本地装的Apache环境,搭建的系统,没办法正常使用Rewrite功能,httpd.conf中加上<IfModule mod_rewrite.c>这一段,无法重启服务,而且Nginx:这个放到哪里呢,也没有Nginx.conf文件,求助·····

victory1325 - 80年的我相信自己

赞同来自:

我们真的找不到相关的文件配置,你们最好有相关的介绍呢!!!

如在哪找到配置文件,或是我怎么能查找到!!!!

flyingrain - 飞鱼社区 http://www.xxjsweb.cn

赞同来自:

2.0 Beta3 可以使用吗?

cadcamzy - http://help.eui.cc

赞同来自:

主要的问题是在安装在子目录中的, 比如我是装在主机的help目录下,
平时的访问路径是 http://域名/help/?/
按主面的说明指引用rewrite,
问题的链结变成 http://域名/question/123 之类的.
而不是预期的 http://域名/question/?/123

主要是搞不懂, 为啥安装在子目录,访问的路径后面要加个 /?/

samplus - 80后IT男

赞同来自:

占位學習~

小李歌

赞同来自:

有变了,/explore/ 这个不对~

Tiger

赞同来自:

搜索的地方下拉推荐里面的地址还没改过来(自定义情况下)

liuze821 - www.enxujd.com

赞同来自:

这些文件位置在哪呀 没找到呀

四维郎 - 酒搭网:www.jiuda.cc

赞同来自:

我都搞累了,不开启了事。

nuanbing

赞同来自:

官方可否提供个IIS7.5的伪静态规则嗯,全站搜索了一遍都没找到,环境是win2008 IIS7.5

hanxiaoll

赞同来自:

我的根目录www下有两个站
wordpress和ask
wordpress里面也设置了静态化 ask也设置了静态化,.htaccess 这个也设置了,nginx也配置了
location /ask/ {
if (!-e $request_filename)
{
rewrite (.*) /ask/index.php;
}
}
这样的话 打开aaa.com/ask就会自动跳转到了wordpress页,
怎么回事呢!!!

rohow - 做自己!

赞同来自:

我只能说,这伪静态都多久之前的啦!现在都2.510版本了,为啥还不更新伪静态?

wecenter里面那么多人问伪静态的,难道就没人出来解决一下?

gupuw - 谷普网 www.gupuw.com 谢谢支持

赞同来自:

使用后

这个连接访问不了 gupuw.com/inbox/

的法师的说嘛 - 名字不能改啊?

赞同来自:

这家伙草根站长玩不起来啊,这些文件都在哪里呀

余成

赞同来自:

完全看不懂。希望官方给个更好的教程。

该问题目前已经被锁定, 无法添加新回复