Magento 去掉URL地址中的index.php字符串[ubuntu]
在使用magento的过程中, 由于它的每个页面的URL地址中均带有index.php这个字符串, 然后再加其他的字符的形式组成, 而这对于搜索引擎来讲肯定不是什么好事, 如何去掉这个烦人的index.php就成了一个很大的问题. 其实magento本身也已经考虑到了这个问题, 不过要去掉它还需要服务器方面做一个小小的调整, 而且还要启用apache2的重写功能(发现这一点,花费了将近一整天的时间), 好在解决了这个问题, 终有所得,(另外要说明的是, Ubuntu/Debian 下的 Apache 的主配置文件是 /etc/apache2/apache2.conf, 而其他的系统很有可能是httpd.conf,这个根据各自系统的特点自己去寻找. )以下是解决这个问题的方法:
1. 进入apache2服务器的配置文件,位置已经在其他的博客文章里有提到过.(shell下使用vi或者vim编辑工作, winscp下可以直接进入编辑, ftp同winscp), 找到对应的网站配置文件, 我是把所有的AllowOverride None修改为AllowOverride All,大家也可以这样做, 最主要的当属以下的示设置(只改了AllowOverride属性值)
DocumentRoot /var/www/magento
<Directory />
Options FollowSymLinks
AllowOverride All 这里修改成All
</Directory>
<Directory /var/www/magento/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All 这里修改成All
Order allow,deny
allow from all
</Directory>
(以上是程序片段, 请注意)
2.启用apache2的重写模块(这个很重要, 我在这个上面吃足了苦头), 这个要在shell里面进行比较方便, 当然你也可以通过修改php.ini属性值来实现, 不过使用shell方式比较简单, 我是使用PuTTY工具操作的, 具体的今天如下:
#sudo a2enmod rewrite(使用非管理员帐号登陆的情况,如果是管理员的话就直接使用这个命令: a2enmod rewrite)
截图参考:
3.登录Magento后台系统,系统(System) => 配置(Configuration) => 网站(Web)=> 搜索引擎优化(Search Engines Optimization)=> 服务器重写(Use Web Server Rewrites),然后选择” yes” 即可(记得刷新Magento缓存)
截图参考:
4. 修改.htaccess文件的配置(位置在magento的安装目录下,如/var/www/magento/.htaccess)
确保为(其实只须检查一下, 这个是默认开启的):
############################################
## enable rewrites
Options +FollowSymLinks
RewriteEngine on
############################################
## you can put here your magento root folder
## path relative to web root
RewriteBase /
5. 重启apache2服务器
/etc/init.d/apache2 restart
然后刷新前台页面,即可出现你所希望的URL地址形式