我正在使用codeigniter,当我设置网站时,我在.htaccess文件中添加了必要的代码,以便从我的网址中删除index.php(默认)。我刚碰巧从我网站的备份文件中替换了我的public_html文件夹。由于我这样做,我无法让主页上的任何链接工作,除非在域名和网址的其余部分之间的网址中插入index.php,如http://www.obsia.com/index.php/contact/而不是http://www.obsia.com/contact/和有用。因此,在我的应用程序文件夹中的配置文件中,我更改了
$config['index_page'] = "";
到
$config['index_page'] = "index.php";
并且所有链接现在似乎都有效。但是如何从URL中删除index.php。
以下是我的.htaccess代码:
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index\.php|public|user_guide|robots\.txt|css)
RewriteRule ^(.*)$ /index.php?/$1 [L]
任何人都可以指出我正确的方向。非常感谢。
此致 ģ
答案 0 :(得分:3)
你想做的事情可以这样做:
RewriteEngine on
RewriteBase /
# Static content. Rewrite to - (don't change) and mark as last rule.
RewriteRule !^(index\.php|public|user_guide|robots\.txt|css) - [L]
# Do the rewrite.
RewriteRule ^(.*)$ /index.php?/$1 [L]
然而,更好的方法是:
RewriteEngine on
RewriteBase /
# Only do the rewrite under the condition that the requested URL isn't a (real) file.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?/$1 [L]
答案 1 :(得分:2)
有很多ht访问文件...在我的情况下,我正在编辑错误的文件...你应该编辑项目内的文件...例如我在代码点火器上工作,项目名称是测试,所以在测试文件夹里面我有一个htaccess文件,在我的应用程序文件夹中,即测试/应用程序,还有另一个htaccess文件..我正在编辑应用程序文件夹中的访问文件,但我不得不编辑测试文件夹中的文件而不是测试/应用程序/.htaccess ....希望总和1发现这很有用..我花了半天时间来弄明白:(
干杯 KSP