一直困扰于wp把--破折号转换成-的问题(注意前面是英文的两横线,后面是中文的破折号),尤其是linux下的编译命令,头大无比。
一开始我以为是windows live writer造成的。确实wlw里面也有自动转换,然而关掉,还是不行。
后来google一把,在wp的台湾网站上找到这么一条:
排版細膩 — WordPress使用Texturize引擎來轉換ASCII到正確的XHTML格式。包括引號、逗號、省略號、斜體和破折號、乘法符號和其他特殊符號。更多的訊息可以參閱Peter Sheerin的文章:The Trouble With Em ’n En。
原来是wp自导的这个texturize引擎造成的。
后台找了半天,没有,于是继续google。找到这个:http://www.jasonlitka.com/2007/09/25/wordpress-plugin-disable-wptexturize/原来有人专门为这个写了个插件..
启用插件,刷新页面,搞定。
wp的rewrite机制和之前遇到的DZ等不同,稍费了点功夫。
- 首先Apache必须要支持Rewrite,加载好mod_rewrite。
- 其次,WP处理的规则是通过wp目录下的.htaccess文件,如果请求的不是文件或者目录,就交由index.php处理。而非通过Rewrite将连接进行静态化。所有需要将这个.htaccess设置为可写属性。
- Apache要使用这个.htaccess,需要在Directory目录添加“AllowOverride FileInfo, AllowOverride All”。同时还要“FollowSymLinks option”。
参考文章:
分析WordPress的Rewrite机制
http://www.black-xstar.com/blog/article.asp?id=546
WP官网文章
http://codex.wordpress.org/Using_Permalinks#Creating_and_editing_.28.htaccess.29
另外,Wordpress的.htaccsee内容如下:
1
2
3
4
5
6
7
| <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule> |