问题:固定连接设置中自定义结构
说明:点击“设置”下“固定连接”进入固定连接设置页面,对应固定链接的地址希望看到的地址格式为http://know.szreach.com/<分类前缀或标签前缀>/<post-name>地址为:http://know.szreach.com/%category%/%post-name%
设置完成后,在页面上打开文章出现以下错误地址找不到
http://know.szreach.com/uncategorized/%post-name%/
解决方法:
第一步:首先检查检测Apache是否支持mod_rewrite
方法:通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的所有模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。
<?php phpinfo(); ?> |
发现不支持mod_rewrite,继续是设置使支持mod_rewrite
第二步:使支持mod_rewrite
①.默认安装apache2是支持mod_rewrite
安装apache2命令:sudo apt-get install apache2
安装目录是:/etc/apache2
检查mod_rewrite.so是否存在
命令是:grep -rn "mod_rewrite.so" ./
root@ubuntuServer1204:/etc/apache2# grep -rn "mod_rewrite.so" ./ ./mods-available/rewrite.load:1:LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so |
查看rerewrite.load 文件
命令是:cat /etc/apache2/mods-available/rewrite.load
root@ubuntuServer1204:/etc/apache2# cat /etc/apache2/mods-available/rewrite.load LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so |
②加载mod_rewrite模块
命令是:sudo a2enmod rewrite
root@ubuntuServer1204:~#sudo a2enmod rewrite Enabling module rewrite. To activate the new configuration, you need to run: service apache2 restart |
③.给rewrite.load 一个象征性的连接
命令是:ls -al /etc/apache2/mods-enabled/rewrite.load
root@ubuntuServer1204:~# ls -al /etc/apache2/mods-enabled/rewrite.load lrwxrwxrwx 1 root root 30 Dec 3 14:02 /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load |
④.改"AllowOverride None" 为"AllowOverride all"
因为wordpress单独写了份文件修改地址etc/apache2/conf.d/wordpress
root@ubuntuServer1204:/etc/apache2/conf.d# vim wordpress
ServerName 127.0.0.1 <VirtualHost *:80> ServerAdmin webmaster@localhost
DocumentRoot /var/www/wordpress <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/wordpress/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory> "wordpress" 42L, 990C |
第三步:重启apache2
命令是:sudo service apache2 restart
root@ubuntuServer1204:/etc/apache2/conf.d# sudo service apache2 restart * Restarting web server apache2 ... waiting ...done |
第四步:再次检查检测Apache是否支持mod_rewrite
得到的结果:
打开一边文章,可以看到正确的链接地址