2011-04-06 67 views
0

我使用PHP笨,它产生以下网址:Apache的mod_rewrite的清洁网址

http://my.domain.com/app/index.php?/admin/main/ 

的​​是多余的,所以我用下面的重写规则成功地将其删除:

RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ ./index.php/$1 [L] 

然而, ,我也想删除/app部分,但是当我这样做时,我得到一个500错误。这是否与代码点火器相关 - 或者如何正确地重写此规则(如果可能)?我试着用以下方法:

RewriteCond $1 !^(index\.php|images|robots\.txt) 
RewriteRule ^(.*)$ ./app\/index.php/$1 [L] 

谢谢!

+0

这是改写在虚拟主机的配置或.htaccess文件? – whoughton 2011-04-06 23:34:03

+0

这是在一个.htaccess文件中。它应该移动到主配置?我有权访问该框。 – John 2011-04-08 19:15:27

回答

2

不好意思,那个写的htaccess对CI的一个真正的老办法,如果htaccess的是在项目中只使用下面的通用htaccess的代码的主目录(这并不需要排除目录与此类似的旧即

RewriteCond $1 !^(index\.php|images|robots\.txt) 

因此也更好,就像我说的万能)

*它不会与目录解决您的问题,但是这是在H 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> 
+0

非常感谢! – John 2011-05-21 05:10:54

0

尝试增加rewritebase RewriteBase /Path/to/directory/DirectoryBelowApps/