Codeigniter .htaccess 不忽略目录
Posted
技术标签:
【中文标题】Codeigniter .htaccess 不忽略目录【英文标题】:Codeigniter .htaccess not ignoring directories 【发布时间】:2012-09-16 14:58:21 【问题描述】:我有一个基于 codeigniter 的网站,并正在尝试让 PP IPN 使用它。我查看了一些特定于 CI 的库,但希望有一个独立的 IPN 文件。
基本上,我在网站根目录中安装了 CI,我还有另一个目录“pp”,也在根目录中。
我正在尝试使用 Paypal 的沙箱测试 IPN,但它返回 404,我也无法直接访问该文件。
这是我的 .htaccess 文件:
XSendFile on
Options -Indexes
Options +FollowSymlinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
### Canonicalize codeigniter URLs
RewriteRule ^(index(/index)?|index(\.php)?)/?$ / [L,R=301]
RewriteRule ^(.*)/index/?$ $1 [L,R=301]
# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %REQUEST_FILENAME !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
RewriteCond %HTTP_HOST !^(www) [NC]
RewriteRule ^(.*)$ http://www.mysite.net/$1 [L,R=301]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond $1 !^(index\.php|pp|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
# Without mod_rewrite, route 404's to the front controller
ErrorDocument 404 /index.php
</IfModule>
希望它真的很明显!
谢谢,
瑞恩
【问题讨论】:
【参考方案1】:您是否启用了 mod_rewrite.c。如果不是,则 .htaccess 将始终给出 404。(抱歉,我无法对此发表评论,没有代表)。
【讨论】:
【参考方案2】:如果pp
目录存在,您可以在该目录中放置一个 htaccess 文件,然后:
RewriteEngine On
它本身,主 htaccess 文件中的任何规则都将被忽略。如果您的贝宝内容已经在 pp
目录中的 htaccess 文件中具有重写规则,您可能需要查看这些规则作为 404 的原因。
【讨论】:
以上是关于Codeigniter .htaccess 不忽略目录的主要内容,如果未能解决你的问题,请参考以下文章
Codeigniter 一项具有多个访问点、子域、htaccess 的服务
使用 htaccess 删除子目录中的 codeigniter index.php
Codeigniter、OpenID 和 .htaccess
CodeIgniter 使用 .htaccess 保护管理控制器