我在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
答案 0 :(得分:0)
如果您想在具有Apache 2+的Ubuntu服务器上使用Joomla中的SEF URL,则需要执行四个步骤。也许其中一些已经完成,但我想将所有这些都放在这里。
我假设你有sudo访问你的服务器, 另外,您的托管服务提供商必须执行前两个步骤。
在Apache上启用mod_rewrite
sudo a2enmod rewrite && sudo systemctl restart apache2
允许重写VirtualHost
<Directory "/var/www/path/to/public">
AllowOverride All
</Directory>
如果缺少此步骤,则.htaccess文件中的任何内容都不起作用。如果你已经有一个Directory-Direktive只是添加AllowOverride All
你可能想稍后限制它,但只是为了测试所有会很好。
将Joomla htaccess.txt
重命名为.htaccess
。
通常您不必更改此文件只需使用原始文件并重命名即可。
在Joomla中启用SEF!
以Joomla超级用户身份登录并转到Joomla System Konfiguraton,例如http://www.example.com/administrator/index.php?option=com_config
。
在右侧,您必须启用前两个选项(SEF URL和URL-Rewite)
现在你应该有没有index.php的SEF网址