我刚从本地服务器(XAMPP)上传了我的网站。它在本地工作,但由于某种原因,将index.php添加到我的SEF URL的重写在我的公共服务器中不起作用。这就是我现在所拥有的:
# Avoid listing directory
Options -Indexes
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine on
# manage language segment
RewriteRule ^(es|en)/(.*) $2?lang=$1 [L]
# code that allows to get rid of index.php from URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]
</IfModule>
这些网址的工作:
www.example.com
www.example.com/index.php/aboutme
虽然这样的网址会产生 500错误:
www.example.com/aboutme
这是条件和规则的另一种组合,我试图解决index.php的删除问题:
RewriteCond $1 !^(index.php|css|img|scripts|ckeditor|robots.txt|sitemap.xml)
RewriteRule ^(.*)$ index.php/$1 [L]
但是对于没有index.php的任何网址,它会产生500错误,包括根网址www.example.com
你可以帮我解决这个问题吗?
答案 0 :(得分:2)
你的RewriteRule中似乎有一个拼写错误。
试试这个:
RewriteCond $1 !^(index.php|css|img|scripts|ckeditor|robots.txt|sitemap.xml)
RewriteRule ^(.*)$ /index.php/$1 [L]
它适用于Code Igniter。与你的第二个例子相比,唯一的区别是index.php的斜线。