我刚刚使用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的支持中心有关它,但不幸的是,回答我的人似乎并不真正理解英语或我的问题。
任何建议表示赞赏。
答案 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]