如何从网址中删除“ index.php”?


Answers:


17

您可以通过在Joomla全局配置中启用SEF URL尤其是参数“使用URL重写”来实现。

请注意,如果.htaccess在启用该选项之前未创建文件,这将生成内部服务器错误。

有一个文档页面,说明了获得这些精美网址所需的步骤。在这里看看:http : //docs.joomla.org/Enabling_Search_Engine_Friendly_(SEF)_URLs

基本上,您必须重命名htaccess.txt在Joomla根目录中找到的文件。根据您的托管者,还需要其他步骤。


好,我会尝试的。就像我现在想的那样,Joomla不会自己生成代码有点奇怪。我想我尝试过该选项,但实际上确实崩溃了。
connersz 2014年

1
这就是Joomla本身不生成代码的原因。这在很大程度上取决于主机,我们不希望通过启用功能来完全破坏您的网站:)
巴库(Bakual)2014年

4

您可以将此代码添加到Joomla的index.php的顶部:

if(strcmp($_SERVER['REQUEST_URI'], '/index.php') == 0 && $_SERVER['QUERY_STRING'] == ''){
    header("HTTP/1.1 301 Moved Permanently");
    header('Location: /');
    exit;
}

不过请注意,如果采用这种方法,则升级时需要重做。


如果重定向和ReWrite在htaccess中不起作用,我建议您可以将此作为可选的技巧。因此有效退后
特里斯坦贝利2014年

同意 这实际上就是我们达到此解决方案的方式。我们无法获得htaccess修复程序以在整个站点范围内正常工作
ContextSwitch

4
  1. 将htaccess.txt更改为.htaccess
  2. 站点>全局配置:使用URL重写(选择是)
  3. SEO设置搜索引擎友好的URL(选择是)

2

如果您的网站使用.htaccess崩溃,这是一种常规方法:

  • 您应该评论以下两行之一或全部:

选项+ FollowSymLinks

和/或,

RewriteBase /

这应该工作正常!注意:您可以通过为行“#”提供井号来进行注释


1

如果您使用的是Nginx Web服务器,则可以将以下代码片段用于nginx.confJoomla!的配置文件。提供站点服务(基本上,只需在index index.php指令出现的任何现有行之后添加if条件)。

#https://stackoverflow.com/a/38165768/remove-index-php-from-joomla-urls-with-nginx
index index.php index.html index.htm;
if ($request_uri ~ "^/(.*)(?<=/)index\.php/?((?<=/).*)?$") {    return  301 /$1$2;  }

有关更多详细信息,请访问/programming/28997028/remove-index-php-from-joomla-urls-with-nginx/38165768#38165768

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.