[英]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/admin或http://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.