mod_rewrite有史以来最简单的任务:重定向到.htaccess中的index.php

mod_rewrite有史以来最简单的任务:重定向到.htaccess中的index.php,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我刚刚创建并上传了一个网站,使用byet.com上的免费主机。 一切正常,只是在浏览器中键入域名不会将用户重定向到我的index.php文件(而是显示一个广告页面)。 在谷歌搜索mod_rewrite并浏览了十几个不同的页面后,我尝试在.htaccess文件中添加以下内容: DirectoryIndex index.php 或 或者(从这个堆栈溢出) 所有这些都没有改变任何内容,或者有时导致无法访问我的index.php页面,并显示错误消息“脚本没有正确重定向”。 也许这个行为是在httpd.

我刚刚创建并上传了一个网站,使用byet.com上的免费主机。 一切正常,只是在浏览器中键入域名不会将用户重定向到我的index.php文件(而是显示一个广告页面)。 在谷歌搜索mod_rewrite并浏览了十几个不同的页面后,我尝试在.htaccess文件中添加以下内容:

DirectoryIndex index.php

或者(从这个堆栈溢出)

所有这些都没有改变任何内容,或者有时导致无法访问我的index.php页面,并显示错误消息“脚本没有正确重定向”。 也许这个行为是在httpd.conf文件(我没有访问权限)级别实现的,所以我永远无法更改它。 我向byte.com的支持中心询问了此事,但不幸的是,回答我的人似乎并不真正懂英语或我的问题


非常感谢您的建议。

如果您的index.php在tld下(例如),您可以试试这个

RewriteEngine On
RewriteRule ^.*$ /index.php [L]
否则,如果index.php位于子文件夹中(例如),则必须将路径添加到重写规则

RewriteEngine On
RewriteRule ^.*$ /my/folder/index.php [L]

如果这不起作用,则主机有可能已禁用mod_rewrite模块(尽管您收到的重定向错误消息表明情况并非如此)。是否已检查apache的错误日志文件以获取相关消息?

在root.htaccess中尝试此规则:

RewriteEngine on

RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$ [NC]
RewriteRule ^(?!index\.php).*$ /index.php [L,NC,R=302]

我认为这里的关键词是免费托管。也许广告是由byet.com发布的,然后将用户重定向到您的站点。这样做,他们就可以通过提供免费主机来弥补损失?由于这似乎是一个特定于供应商的问题,也许最好将您的注意力转移到他们的?如果所有网站都出现这种情况,可能是广告软件?您是否删除了预安装在托管空间中的默认索引。**html**?我的文件位于domain.com/htdocs/index.php,但键入domain.com/index.php就可以了。在哪里可以找到apache的错误日志文件?通过FTP?那么第一个解决方案应该可以工作。您的错误日志文件应该在域的文件结构中的某个位置,因此,是的,FTP是可以的。
RewriteEngine On
RewriteRule ^.*$ /my/folder/index.php [L]
RewriteEngine on

RewriteCond %{REQUEST_URI} !\.(gif|jpe?g|png|css|js)$ [NC]
RewriteRule ^(?!index\.php).*$ /index.php [L,NC,R=302]