为wordpress配置apache url重定向/apache url rewrite for wordpress

简介:

文章来源:http://degula.com/wordpress/200903166/wordpress-apache-rewrite.html#more-166

测试环境: windows xp/apache 2.2.11/wordpress2.7

看了很多文章都说静态url便于搜索引擎的收录,昨天晚上就将degula 的链接全都改为静态链接了,我的链接格式是:/%category%/%year%%monthnum%%post_id%/%postname%.html,效果还不错,现在是万事具备,只等收录了:)

今天小D 在自己的winxp上配置wordpress永久链接时发现页面找不到,报404错误.想了一下应该是Apache url rewrite默认没有开启的原因.找到原因就开始动手了.这里把主要步骤和遇到的一些疑点写出来,希望能对大家有所帮助.

首先需要在配置httpd.conf以启用url rewrite功能:

将#LoadModule rewrite_module modules/mod_rewrite.so前面的注销去掉然后重启apache,在命令行使用httpd -M查看当前模块情况.如有rewrite_module(shared)说明模块已经成功加载.

注:网上许多文章提到了httpd.conf文件中需要有这一行:Addmodule mod_rewrite.c,其实在这里是不需要的,因为apache已经把mod_rewrite.c编译进去了.下面是关于mod_rewrite.c的一点说明:

The AddModule and ClearModuleList directives no longer exist. These directives were used to ensure that modules could be enabled in the correct order. The new Apache 2.0 API allows modules to explicitly specify their ordering, eliminating the need for these directives.

As long as you have mod_rewrite.c ompiled into Apache you should be ready to roll. Use the LoadModule if you enabled the module as a DSO .

到这里apache url rewrite的模块已经加载了.要想使它生效还需要配置.htaccess文件.

配置目录的allowoverwrite属性:

在Apache 2.x 中,我们会看到 DocumentRoot设置的一行。这行就是存放网页程序的地方。比如存放在 c:/www 目录中,那么我们就要设置 DocumentRoot为如下的:

DocumentRoot "c:/www"

然后我们再还要对 DocumentRoot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 DocumentRoot的路径,同时也要改针对DocumentRoot的Directory的设置,也就是

<Directory "DocumentRoot中设置的路径">

比如我们把DocumentRoot的路径改为了 “c:/www”,那我们也要把 DocumentRoot做针对性的行为设置也要改成这个路径.

注意不要 修改一下default的配置

<Directory />
    Options FollowSymLinks   
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

 

而是修改这里:

<Directory “c:/www”>
    #
    # Possible values for the Options directive are “None”, “All”,
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that “MultiViews” must be named *explicitly* — “Options All”
    # doesn’t give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.2/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be “All”, “None”, or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride All

    #
    # Controls who can get stuff from this server.
    #
    Order allow,deny
    Allow from all

</Directory>

把AllowOverride 的参数设置为ALL,表示整台服务器上的,都支持URL规则重写。Apache 服务器要读每个网站下的家目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则,则不会有任何效果。在一般的情况下,成熟的Web 服务器应用套件,都支持URL重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把Apache配置好后,只是需要在这些程序的后台打开此功能就行了.

下面是WordPress安装包中的.htaccess文件

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

# END WordPress

到这里应该一切OK了吧,访问刚才404的网址,果然可以了.WPer们,还等什么,快把你的blog链接也和谐了吧.

Apache文档:

中文文档:http://www.phpx.com/man/Apache-2/mod/mod_rewrite.html
中文文档:http://www.kreny.com/docs/apache2.0/misc/rewriteguide.html
英文文档:http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html

参考文献:

<apache url rewrite 重写入门>
<Apache Url Rewrite(mod_rewrite)的使用>
<Apache 2.x 服务器中的URL重写的配置和应用>

相关文章
|
29天前
|
网络协议 开发工具 Android开发
应用研发平台EMAS产品常见问题之接入httpdns后 访问重定向的url访问有问题如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
SQL Apache HIVE
一文彻底掌握Apache Hudi的主键和分区配置
一文彻底掌握Apache Hudi的主键和分区配置
60 0
|
2月前
|
Java 程序员 API
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-swagger配置(idea社区版2023.1.4+apache-maven-3.9.3-bin)
58 1
|
2月前
|
前端开发 Java 数据库连接
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
Springboot-MyBatis配置-配置端口号与服务路径(idea社区版2023.1.4+apache-maven-3.9.3-bin)
33 0
|
1月前
|
安全 Linux Apache
Apache代理服务器搭建和配置
Apache代理服务器搭建和配置
|
1月前
|
XML Java Apache
Apache Flink自定义 logback xml配置
Apache Flink自定义 logback xml配置
147 0
|
1月前
|
监控 API Apache
实战!配置DataDog监控Apache Hudi应用指标
实战!配置DataDog监控Apache Hudi应用指标
21 0
|
3月前
|
消息中间件 Java Kafka
Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操
Apache Kafka-初体验Kafka(02)-Centos7下搭建单节点kafka_配置参数详解_基本命令实操
58 0
|
2月前
|
消息中间件 Kafka Apache
Apache Flink 是一个开源的分布式流处理框架
Apache Flink 是一个开源的分布式流处理框架
481 5
|
30天前
|
消息中间件 API Apache
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会
本文整理自阿里云开源大数据平台徐榜江 (雪尽),关于阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会。
1400 1
官宣|阿里巴巴捐赠的 Flink CDC 项目正式加入 Apache 基金会

推荐镜像

更多