我在PHP上使用CodeIgniter,它会生成以下URL:
http://my.domain.com/app/index.php?/admin/main/
/index.php?
是多余的,因此我使用以下重写规则成功删除它:
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./index.php/$1 [L]
然而,我还想删除/app
部分,但是当我这样做时,我得到500错误。这与Code Igniter有关 - 或者如何正确地重写此规则(如果可能)?我尝试了以下内容:
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ ./app\/index.php/$1 [L]
谢谢!
答案 0 :(得分:2)
很抱歉,如果htaccess位于项目的主目录中,只需使用下面的通用htaccess代码(这不需要排除目录,例如旧的目标,那么这是编写CI的htaccess的一种非常古老的方式/ p>
RewriteCond $1 !^(index\.php|images|robots\.txt)
所以它也更好,就像我说的那样普遍)
*它不会解决您对目录的问题,但这是CI处理index.php删除的最佳方式,而无需每次添加说文档文件夹或其他内容时都返回。
很棒的htaccess:
# Customized error messages.
ErrorDocument 404 /index.php
# Set the default handler.
DirectoryIndex index.php
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
答案 1 :(得分:0)
尝试添加rewritebase RewriteBase /Path/to/directory/DirectoryBelowApps/