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

时间:2015-02-27 12:01:03

标签: php apache .htaccess mod-rewrite redirect

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

DirectoryIndex index.php

RedirectMatch ^/$ /index.php

或者(来自此Stackoverflow answer

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

其中没有任何内容发生任何变化,或者有时导致我的index.php页面无法访问,并显示错误消息"脚本未正确重定向"。   也许这种行为是在httpd.conf文件的级别上实现的(我无法访问它),所以我永远无法改变它。   我问了byte.com的支持中心有关它,但不幸的是,回答我的人似乎并不真正理解英语或我的问题。

任何建议表示赞赏。

2 个答案:

答案 0 :(得分:0)

如果你的index.php在你的tld下(例如http://domain.com/index.php),你可以试试这个;

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

否则,如果index.php在子文件夹中(例如http://domain.com/my/folder/index.php),则必须添加RewriteRule的路径;

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

如果这不起作用,主机有可能已禁用mod_rewrite模块(尽管你得到的重定向错误信息也是如此)。您是否检查过apache的error_log文件以获取相关消息?

答案 1 :(得分:0)

在root .htaccess中尝试此规则:

RewriteEngine on

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