我最近在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重定向。
答案 0 :(得分:2)
由于您在内部将内容路由到index.php,因此您必须与实际请求进行匹配:
RewriteCond %{THE_REQUEST} ^(GET|HEAD)\ /index\.php/[^\ ]+
RewriteRule ^index\.php/(.*)$ /$1 [L,R=301]
答案 1 :(得分:1)
转到您的全局配置页面并进行以下更改:
同时将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。