繁体   English   中英

CodeIgniter多应用程序.htaccess问题

[英]CodeIgniter multi-application .htaccess problem

我对CodeIgniter .htaccess文件有问题,希望有人可以帮助我! 我不知道正则表达式或.htaccess的用法,我对这些东西很陌生!

我的问题是:

我有这种文件结构(多应用程序):

- application
    - admin
    - site
- system
- index.php
- admin.php

这个.htaccess(在localhost上可以正常使用!)

Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

我想做的是:

通过访问我的网站(前端) http://www.mydomain.com/和我联系(后端)作为http://www.mydomain.com/admin/

我不知道为什么这在我的本地服务器上能正常工作。

我希望有一个人可以帮助我。

UPDATE

我使用它来工作:

RewriteEngine on

# If the user types "index.php" or "admin.php".
RewriteCond $1 !^(index\.php|admin\.php|images|robots\.txt)

# If the user types just "admin".
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin$ admin\.php [L,QSA]

# If the user enter in any admin section, like "admin/section".
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^admin\/(.*)$ admin\.php/$1 [L,QSA]

# If the user types any site section, like "site/section".
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index\.php/$1 [L,QSA]

这样,我可以访问http://www.mydomain.com/adminhttp://www.mydomain.com/admin/any-section (在根目录上指向“ admin.php”)

而且我可以访问http://www.mydomain.com/http://www.mydomain.com/any-section (指向根目录上的“ index.php”)

谢谢您的帮助!

首先,这是多余的:

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

因为您的其他条件已经处理了现有文件和目录,所以建议您将其删除。

如果您希望/ admin将其重写为admin.php,则您的重写规则是错误的,按照您当前的规则,它将导致/index.php/admin。 您没有提到这是否是问题,如果是这样的话:

RewriteRule ^/admin$ admin.php [L,QSA]
RewriteRule ^(.*) index.php/$1 [L,QSA]

您也可以使用RewriteLog调试重写: http : //httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog

如果仍不能解决问题,请描述当前的行为以及您的期望,否则很难提供帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM