使用新支持的方法删除index.php会导致联系表单返回到奇怪的页面

时间:2013-01-17 04:26:46

标签: expressionengine

我创建了一个htaccess表单,它只包含:

<IfModule mod_rewrite.c>
RewriteEngine On
# Removes index.php from ExpressionEngine URLs
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

- &gt;在最新的用户指南中显示为删除index.php的新支持方式。

一切都很好,我的联系表格工作正常 - 除了表单提交后,显示消息然后重定向它没有重定向回我指定的主页(目前是testsite7),但它实际上是重定向到“ testsite7 / _mp3“我不知道它为什么显示这个?这是我服务器上的文件夹,里面有音乐文件。

我的网站位于插件域,EE安装位于root之上。

任何想法!

1 个答案:

答案 0 :(得分:0)

有趣,不知道为什么它会重定向到该特定文件夹,我不明白为什么该代码会导致它。可能值得尝试一种不同的.htaccess方法来缩小问题的范围。这是我们在所有大型网站上使用的,并且一直运行良好。也许试一试:

# turn on mod_rewrite
RewriteEngine On
RewriteBase /

# make sure index.php is always removed from url
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+index\.php(/[^\s\?]+)? [NC]
RewriteRule ^ %1 [L,R=301]

# make sure we don't have a trailing slash unless it's a directory
# RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule ^(.+)/$ /$1 [L,R=301]

# make sure requests are routed through index.php but not in url this helps certain addons.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php%{REQUEST_URI} [L,NC]