Codeigniter .htaccess不忽略目录

时间:2012-09-25 06:09:00

标签: .htaccess codeigniter paypal paypal-ipn

我有一个建立在codeigniter上的网站,我试图让PP IPN使用它。我查看了几个CI特定的库,但希望有一个独立的IPN文件。

基本上,我在网站root中安装了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>

希望它有一些非常明显的东西!

谢谢,

赖安

2 个答案:

答案 0 :(得分:1)

如果pp目录存在,您只需将htaccess文件放在该目录中即可:

RewriteEngine On
单独使用

,主htaccess文件中的任何规则都将被忽略。如果您的paypal内容已经在pp目录中的htaccess文件中有重写规则,您可能需要查看这些规则作为404的原因。

答案 1 :(得分:0)

你是否启用了mod_rewrite.c。如果没有,那.htaccess将总是给404.(抱歉,我无法将此评论作为评论,不要有代表)。