无法让mod_rewrite与Joomla一起使用

时间:2017-09-01 14:22:49

标签: apache mod-rewrite joomla

我在Ubuntu服务器上运行Joomla网站,在虚拟主机中使用apache,但无法使用URL重写工作(想要从URL中删除index.php)。

在服务器上启用Mod_rewrite,在另一个非Joomla虚拟主机上测试并运行。除了Joomla VH上的不同路径/域和SSL证书之外,两个虚拟主机设置是相同的。我似乎无法在证书中找到任何可能导致这些问题的内容,但我可能错了。对此有何看法?

我使用Joomla的URL重写设置(在全局配置中)使用默认的Joomla .htaccess以及htaccess(重写库,注释掉其他重写等)测试了重写模块的功能。还尝试使用空的.htaccess,只添加Joomla! Documentation提供的标准重写规则:

RewriteEngine On<br/>
Options +FollowSymLinks<br />
RewriteRule ^joomla\.html http://www.joomla.org/? [R=301,L]

这也不起作用。

是否有人知道可能出现的问题或我如何进一步解决这个问题?

Ubuntu版本:16.04.1
Apache版本:2.4.18
PHP版本:7.0.22
Joomla版本:3.7.5

1 个答案:

答案 0 :(得分:0)

如果您想在具有Apache 2+的Ubuntu服务器上使用Joomla中的SEF URL,则需要执行四个步骤。也许其中一些已经完成,但我想将所有这些都放在这里。

我假设你有sudo访问你的服务器, 另外,您的托管服务提供商必须执行前两个步骤。

  1. 在Apache上启用mod_rewrite sudo a2enmod rewrite && sudo systemctl restart apache2

  2. 允许重写VirtualHost

    <Directory "/var/www/path/to/public">
        AllowOverride All
    </Directory>
    

    如果缺少此步骤,则.htaccess文件中的任何内容都不起作用。如果你已经有一个Directory-Direktive只是添加AllowOverride All你可能想稍后限制它,但只是为了测试所有会很好。

  3. 将Joomla htaccess.txt重命名为.htaccess。 通常您不必更改此文件只需使用原始文件并重命名即可。

  4. 在Joomla中启用SEF! 以Joomla超级用户身份登录并转到Joomla System Konfiguraton,例如http://www.example.com/administrator/index.php?option=com_config。 在右侧,您必须启用前两个选项(SEF URL和URL-Rewite)

  5. 现在你应该有没有index.php的SEF网址