不少朋友总是询问 WordPress 如何添加伪静态规则,今天幻杀就总结一下 IIS6/IIS7.5/Apache/Nginx/win2003/win2008四种环境下的伪静态规则,希望对大家有所帮助。其中IIS7.5的规则是目前最完美的哦
明明是六种为什么要说是四种呢?其实windows的主机在2003时为IIS6,而2008以后升级为了IIS7.5 所以IIS6的规则在IIS7.5不通用哦,其实我以前也很纠结的。弄了半天规则才发现,悲催了
检测主机是否支持伪静态的方法:在WP后台 > 设置 > 固定链接,设置为 非默认带?的那种结构,然后访问任何一篇文章,如果出现 404 错误,说明你的主机当前不支持 WordPress 伪静态。
IIS 环境是 Windows 主机常用的服务器环境,但网上很多规则其实并不完美,很多地方依旧有些无法设置的地方,但这个却可以,新建两个 txt 文件,将下面的代码分别添加到文件中:
第一个 web.config
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ChineseURL" stopProcessing="true">
<match url="^(tag|category)/(.*)$" />
<action type="Rewrite" url="ihuanurl.php"/>
</rule>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
第二个辅助文件 ihuanurl.php:
<?php
// IIS Mod-Rewrite
if (isset($_SERVER['HTTP_X_ORIGINAL_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
}
// IIS Isapi_Rewrite
else if (isset($_SERVER['HTTP_X_REWRITE_URL'])) {
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
}
else
{
// Use ORIG_PATH_INFO if there is no PATH_INFO
if ( !isset($_SERVER['PATH_INFO']) && isset($_SERVER['ORIG_PATH_INFO']) )
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];
// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
if ( isset($_SERVER['PATH_INFO']) ) {
if ( $_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
else
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
}
// Append the query string if it exists and isn't null
if (isset($_SERVER['QUERY_STRING']) && !empty($_SERVER['QUERY_STRING'])) {
$_SERVER['REQUEST_URI'] .= '?' . $_SERVER['QUERY_STRING'];
}
}
require("index.php");
?>
然后保存文件,上传到WordPress站点的根目录即可。
IIS 环境是 Windows 主机常用的服务器环境,新建一个 txt 文件,将下面的代码添加到文件中:
[ISAPI_Rewrite] # Defend your computer from some worm attacks #RewriteRule .*(?:global.asa|default\.ida|root\.exe|\.\.).* . [F,I,O] # 3600 = 1 hour CacheClockRate 3600 RepeatLimit 32 # Protect httpd.ini and httpd.parse.errors files # from accessing through HTTP # Rules to ensure that normal content gets through RewriteRule /tag/(.*) /index\.php\?tag=$1 RewriteRule /software-files/(.*) /software-files/$1 [L] RewriteRule /images/(.*) /images/$1 [L] RewriteRule /sitemap.xml /sitemap.xml [L] RewriteRule /favicon.ico /favicon.ico [L] # For file-based wordpress content (i.e. theme), admin, etc. RewriteRule /wp-(.*) /wp-$1 [L] # For normal wordpress content, via index.php RewriteRule ^/$ /index.php [L] RewriteRule /(.*) /index.php/$1 [L]
然后另存为 httpd.ini 文件,上传到WordPress站点的根目录即可。
Apache是 Linux 主机下常见的环境,现在一般的 Linux 虚拟主机都采用这种环境。新建一个 htaccess.txt 文件,添加下面的代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
然后上传到 WordPress 站点的根目录,重命名为 .htaccess 即可
Nginx环境一般是Linux 主机 VPS或服务器用户用的比较多,这些用户一般都会自己配置Nginx,或者有专门的人帮你配置,打开 nginx.conf 或者某个站点的配置环境,比如 wpdaxue.com.conf(不同人配置的不一样),在 server { } 大括号里面添加下面的代码:
location / {
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
保存,重启 Nginx 即可。
最后来个结尾:你们会问我我为什么知道IIS7.5的规则,其实以前我就是用的win2008的机子,但是用来做博客的话,win主机真的不大适合,绝大部分运营商都会禁止smtp的,而且win主机运行php实在是太慢了,推荐在win的主机上安装阿帕奇之后再用,真的,我不想深受其害了
Hello there! I just would like to give you a huge thumbs up for the great info you have here on this post.
2018年8月4日 00:16I’ll be coming back to your blog for more
soon.
Appreciate this post. Let me try it out.
2018年8月3日 22:56hey there and thank you for your information – I have certainly picked up anything new from
2018年8月3日 22:17right here. I did however expertise several technical points using this website, as I experienced to reload the web
site many times previous to I could get it to load properly.
I had been wondering if your web hosting is OK?
Not that I am complaining, but slow loading instances times will very frequently affect
your placement in google and can damage your quality score if ads and
marketing with Adwords. Anyway I’m adding this RSS to
my email and could look out for much more of your respective
exciting content. Make sure you update this again soon.
Hi to every body, it’s my first pay a visit of this blog; this weblog contains awesome and in fact good information for readers.
2018年8月3日 21:45After looking into a handful of the blog posts on your
2018年8月3日 19:09site, I honestly like your technique of blogging.
I saved as a favorite it to my bookmark website list and will be
checking back in the near future. Please check out my web site as well and
let me know your opinion.
Its like you read my mind! You seem to know so much about this, like you wrote the book in it
2018年8月3日 10:56or something. I think that you can do with a few pics to
drive the message home a bit, but other than that, this is great blog.
A great read. I will definitely be back.
An interesting discussion is definitely worth comment.
2018年8月3日 03:55I do believe that you should publish more about this subject matter, it might not be a taboo matter but typically people don’t discuss these topics.
To the next! Kind regards!!
You actually make it appear really easy together with your presentation however I in finding this topic to be really something that I
2018年8月3日 03:19think I might never understand. It kind of feels too complex and extremely wide for me.
I’m having a look ahead to your subsequent publish,
I’ll try to get the grasp of it!
Saved as a favorite, I like your site!
2018年8月3日 01:03What’s up to every one, it’s truly a pleasant for me to pay a visit this site, it contains valuable Information.
2018年8月2日 23:12