关于永久链接
近期由于本人于Mac OS X Leopard 中本地安装的 WordPress 中的永久链接功能,经多次尝试、摸索,直至最终设置成功的过程中发现相关信息过于零散,不方便查找,特出此文。
点击 此处 直接跳至步骤总结处。
我试着启用 WordPress 中的永久链接功能,得提示“your .htaccess file needs to be updated”, Google 了一下相关信息,得知需要在本地安装的 WordPress 的根目录下创建 .htaccess 文件(如果该文件不存在的话,可通过在系统自带的 终端 程序中使用命令 “touch /pathToYourWordPressInstallation/.htaccess”, 另外如需 WordPress 为你自动更新 .htaccess 文件,还要将该文件的权限暂时设置为 666,命令为 “chmod 666 /pathToYourWordPressInstallation/.htaccess”。该文件更新后请务必将权限改为 644。当然你也可以手动更新该文件)。
这些做好后,更新了永久链接设置。试用一下,出现 “*** is not found on this server”。这表明虽然 .htaccess 文件成功创建,永久链接的相关设置也被自动导入了该文件,但是文件未被调用。因为类似“http://yourBlogAddress/**year/**month/**day/post-name” 的路径实际上并非服务器上文件的存在路径,而是虚拟出来的,目的在于是增强博客文章的链接的可读性,必须 .htaccess 文件的协助才能正常起作用。因此再次 Google 之后,得到的答案是必须启用 Apache 附带 rewrite 模块,并且对相关目录设置 “AllowOverride All”。具体包括:
-
修改文件 /private/etc/apache2/httpd.conf :
使用命令 “sudo pico /private/etc/apache2/httpd.conf” 打开该设置文件。找到 “#LoadModule rewrite_module libexec/apache2/mod_rewrite.so” 这一行,删除 “#”。保存。
这是 Leopard 中 Apache2 的相应路径。对 Tiger 而言,相应配置文件的路径为 /etc/httpd/httpd.conf 。
-
修改文件 /private/etc/apache2/users/yourUserName.conf
“AllowOverride None” 改为 “AllowOverride All”。保存文件
做好上述两步后,用命令 “sudo apachectl graceful” 重新加载配置文件以使修改生效。
这次错误信息变成了 “Forbidden, You don’t have permission to access ***** on this server.” 到 WordPress 官方论坛搜索了一下,得到解决方案:在 .htaccess 文件中添加独立的一行,该行内容为”Options +FollowSymLinks“。如此即可正常使用永久链接功能了。
最后按顺序总结一下全部所需步骤:
-
修改文件 /private/etc/apache2/httpd.conf :
使用命令 “sudo pico /private/etc/apache2/httpd.conf” 打开该设置文件。找到 “#LoadModule rewrite_module libexec/apache2/mod_rewrite.so” 这一行,删除 “#”。保存。
-
修改文件 /private/etc/apache2/users/yourUserName.conf
“AllowOverride None” 改为 “AllowOverride All”。保存文件
-
在本地安装的 WordPress 的根目录下创建 .htaccess 文件
如果该文件不存在的话,可通过在系统自带的 终端 程序中使用命令 “touch /pathToYourWordPressInstallation/.htaccess”, 另外如需 WordPress 为你自动更新 .htaccess 文件,还要将该文件的权限暂时设置为 666,命令为 “chmod 666 /pathToYourWordPressInstallation/.htaccess”。该文件更新后请务必将权限改为 644。当然你也可以手动更新该文件。
-
在 .htaccess 文件中添加独立的一行, 该行内容为”Options +FollowSymLinks“。
关于 Apache 服务器上目录访问权限设置的中文介绍,可参考Apache的Order Allow Deny心得