0

我刚刚从本地服务器 (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>

这些 URL 的工作:

www.example.com

www.example.com/index.php/aboutme

而像这样的 URL 会产生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 的 URL 生成 500 错误,包括根 URL www.example.com

你能帮我解决这个问题吗?

4

1 回答 1

2

您的 RewriteRule 中似乎有一个错字。

试试这个:

RewriteCond $1 !^(index.php|css|img|scripts|ckeditor|robots.txt|sitemap.xml) 
RewriteRule ^(.*)$ /index.php/$1 [L]

它适用于我们的 Code Igniter。与第二个示例相比,唯一的区别是 index.php 前面的斜线。

于 2013-01-22T20:46:28.020 回答