没有index.php的Joomla(301重定向)

时间:2012-12-18 10:35:34

标签: .htaccess joomla

我最近在Joomla开始了项目。我不得不从中删除index.php(这是配置设置中的一些复选框)。我发现了怎么做。目前,所有的URL都是在没有index.php的情况下创建的。

但是,我可以直接输入网址http://mywebsite.com/index.php/article-name,但不会重写为http://mywebsite.com/article-name。 如果我有一个菜单,那么URL正在创建(http://mywebsite.com/article-name - 所以没有index.php)。

所以问题是: 如何使用index.php为没有index.php的网站创建网站的htaccess重定向。

2 个答案:

答案 0 :(得分:2)

由于您在内部将内容路由到index.php,因此您必须与实际请求进行匹配:

RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index\.php/[^\ ]+
RewriteRule ^index\.php/(.*)$ /$1 [L,R=301]

答案 1 :(得分:1)

转到您的全局配置页面并进行以下更改:

  1. 启用SEF(搜索引擎友好)网址选项。
  2. 对Apache mod_rewrite说“是”
  3. 拒绝为URL添加后缀
  4. 对Unicode别名说不
  5. 拒绝在页面标题中包含网站名称。
  6. 同时将htaccess.txt更改为.htaccess。现在,在“Redirect Goes Here”中添加新的重定向代码。

    <强>代码

    #### Begin - 301重定向

    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}&gt; s ^(443&gt;(s)| [0-9] +&gt; 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 - 301重定向

    注意:使用您的站点名称删除www.example.com。