在 ubuntu 上设置 apache2 以避免 joomla 中的 index.php

在 ubuntu 上设置 apache2 以避免 joomla 中的 index.php

我有一个 ubuntu 14.04 azure 虚拟机,为几个不同的站点提供服务。

www.example.com 设置为 ip 1.2.3.4(我的服务器),并重定向到 1.2.3.4/example。这工作正常。

<VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com
        DocumentRoot /usr/share/example
</VirtualHost>

实际的 joomla 安装位于 /usr/share/example(它实际上是 /mounteddrive/example 的链接)。

当我在 joomla 中打开 URL 重写以避免 index.php 成为 URL 的一部分时,它会失败(出现 404 页面)。

我对 .htaccess 进行了以下更改,在进行最新更改之前,我确保从原始 3.4.1 joomla 复制这些更改。

(并且我记得清除缓存;-))

## Begin - Custom redirects
#
# If you need to redirect some pages, or set a canonical non-www to
# www redirect (or vice versa), place that code here. Ensure those
# redirects use the correct RewriteRule syntax and the [R=301,L] flags.
#
#
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*(index|home)\.html?\ HTTP/
RewriteRule ^(([^/]+/)*)(index|home)\.html?$ http://www.example.com/$1 [R=301,L]
#
RewriteCond %{THE_REQUEST} !^POST
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteCond %{SERVER_PORT}>s ^(443>(s)|[0-9]+>s)$
RewriteRule ^(([^/]+/)*)index\.php$ http%2://www.example.com/$1 [R=301,L]
#
RewriteCond %{HTTP_HOST} !^(www\.example\.com)?$
RewriteRule (.*) http://www.example.com/$1 [R=301,L]
## End - Custom redirects

我感觉RewriteBase /在这种情况下我也需要做点什么但不确定做什么。

我已查看了有关特定 joomla 问题的几种资源,但似乎遇到的设置与 ubuntu 发行版略有不同,这就是我在这里询问的原因。

答案1

Apache 需要启用 mod_rewrite。你可以尝试这个:

http://www.dev-metal.com/enable-mod_rewrite-ubuntu-14-04-lts/

相关内容