我从7个小时开始摸不着头脑,但无法让我的codeIgniter目录工作。虽然,我在root域上的wordpress工作正常。问题出在codeigniter子文件夹中。
以下是我的Wordpress .htaccess for root domain:(根域工作)
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /index.php
</IfModule>
以下是我对CodeIgniter .htaccess的子文件夹:(不工作 404 )
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /chat/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /chat/index.php/$1 [L]
</IfModule>
一切都干净清晰。上面应该是什么问题? 我还试图添加web.config文件,并认为这可行,但没有成功。下面是web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Clean URL" stopProcessing="true">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="false" />
</rule>
</rules>
</rewrite>
<staticContent>
<mimeMap fileExtension=".json" mimeType="manifest/json" />
</staticContent>
</system.webServer>
</configuration>
更多解释。以下是我的uri_protocol属性:
$ config [&#39; uri_protocol&#39;] =&#39;自动&#39;;
我没有粘贴此处的网站链接,以避免人们将我标记为垃圾邮件。如果有人需要,请在下面发表评论。
答案 0 :(得分:0)
您可以尝试将其排除在重写之外。
RewriteCond %{REQUEST_URI} !^/(thedir|thedir/.*)$
将thedir
替换为您的目录名。
你的wordpress .htaccess
应如下所示:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !^/(chat|chat/.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
之后,您应该能够使用
访问您的目录http://yourdomanin.com/chat/
答案 1 :(得分:0)
我在问题上面发布的文件非常好。问题只是因为codeigniter的控制器。如果任何控制器文件的第一个字母都有小写字母,那么它将不会打开并且会给你 404 错误。虽然小上限在 Godaddy 上效果很好,但我已经做了很长时间。但是他们不能使用 HostGator 托管。
因此,请确保控制器中的每个文件都必须以大写字母开头。谢谢!