在LAMP服务器上,我需要URLhttp://example.com/index.php 改写http://example.com. 我该怎么做? http://example.com/index.php

在LAMP服务器上,我需要URLhttp://example.com/index.php 改写http://example.com. 我该怎么做? http://example.com/index.php,php,apache,url,.htaccess,lamp,Php,Apache,Url,.htaccess,Lamp,在LAMP服务器上,我需要URL http://example.com/index.php 如何编辑.htaccess文件以完成此基本重写?另外,如果您对我的.htaccess代码有任何其他反馈,我们将不胜感激 提前谢谢 RewriteRule ^/index.php$ / 但这没有意义,因为/可能提供index.php。 如果您的目录中有一个index.php文件,并且不想将其作为默认文件,那么这是一个非常奇怪的配置!但当然有可能。。。如果您在Web服务器配置中指定了不同的目录索引 也许您想

在LAMP服务器上,我需要URL http://example.com/index.php 如何编辑.htaccess文件以完成此基本重写?另外,如果您对我的.htaccess代码有任何其他反馈,我们将不胜感激

提前谢谢

RewriteRule ^/index.php$ /
但这没有意义,因为
/
可能提供
index.php
。 如果您的目录中有一个index.php文件,并且不想将其作为默认文件,那么这是一个非常奇怪的配置!但当然有可能。。。如果您在Web服务器配置中指定了不同的
目录索引

也许您想将重定向到
index.php
/

在这种情况下,您可以在您的配置中放置一个
RedirectMatch
,如
RedirectMatch 301^/index.php$/
,但我建议您在php文件中直接查看您的
$\u服务器[“请求\u URI]
但这是一个风格问题。我个人希望在可能的情况下在我的应用程序中拥有尽可能多的控制权,并且只有在速度更快或必要时才移动到服务器配置

编辑:

在你的评论澄清了你真正需要的东西之后,我可以给你两个解决方案

Redirect
/
RedirectMatch
无法工作,因为您无法在条件下执行此操作,您可以在条件下检查实际请求uri。此外,最终提供的url将用于重定向匹配。这意味着在apache通过
DirectoryIndex
指令重定向到
index.php
之后。 因此,这些方法无法区分
/
/index.php
之间的区别

因此,您需要在php文件中执行此操作

第1版:

查看
$\u服务器['REQUEST\u URI']
是否以
index.php
结尾,只有在实际请求时(在浏览器栏中键入)才会发生这种情况。在那里,您可以使用
标题(“位置:…”
进行重新定义

第2版:

使用
mod rewrite
,它还可以执行重定向,并且可以在特定条件下执行重定向。 为了便于演示,在配置中包括(
DirectoryIndex
)。 实际上,您只需要
RewriteCond
RewriteRule

DirectoryIndex index.php

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.yourdomain.com/ [R=301,L]
我不确定是否可以离开你的域名,只需键入
/
,你就可以查到。
只有当请求url实际上是
/index.php
时,才会应用重定向规则。

我一生中从未见过如此繁杂的.htaccess文件。你真的写了这么多乱七八糟的东西,不知道如何添加这个简单的重写规则吗?我确实写了,哈哈,但我遇到了重定向循环错误的问题。也许我太过繁杂了!哈哈,有没有关于如何提高代码效率的建议?我想你是对的,我正在寻找从index.php重定向到/但是,使用RedirectMatch 301^/index.php$/会导致重定向循环页面加载错误。有什么想法吗?我使用了版本2,它工作得非常好。非常感谢!注意,(1)DirectoryIndex.php行似乎没有必要,(2)替换为simply/似乎有效。很高兴我可以帮助您。如果您希望在将来获得有关此帐户的帮助,我建议您接受并投票通过答案。。。
DirectoryIndex index.php

RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.yourdomain.com/ [R=301,L]