Expression Engine使用.htaccess无法正常工作删除index.php

时间:2012-03-24 00:49:15

标签: .htaccess mod-rewrite expressionengine

我的客户端有一个godaddy Virtual Dedicated Server(是的,我知道它很糟糕)....它有WHM VPS优化运行。

我正在尝试从网址中删除index.php,但我的服务器仍然显示404错误,我查看了Universe中的每个论坛,并且无法获得有效的htaccess文件。这是表达引擎告诉你使用的内容......

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} !^(/index\.php|/img|/js|/css|/robots\.txt|/favicon\.ico)
    RewriteRule ^(.*)$ /index.php/$1 [L]
    </IfModule> 

我非常了解Apache ..请帮助亲切的先生......

1 个答案:

答案 0 :(得分:0)

测试htaccess是否正常工作:

# Redirect domain
RewriteCond %{HTTP_HOST} ^www.yourdomain.com$
RewriteRule ^/?$ "http\:\/\/google\.com" [R=301,L]

或者

# Remove the www from the URL
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

确保在输入/index.php时实际显示内容:P

一旦你知道你的htaccess正在运行,试试&#34; $ 1&#34;而不是&#34;%{REQUEST_URI}&#34;:

RewriteEngine on
RewriteCond $1 !^(img|admin\.php|themes|robots\.txt|index\.php|sitemap\.xml|/favicon\.ico) [NC]
RewriteRule ^(.*)$ /index.php?/$1 [L]

还可以尝试&#34; /index.php?/ $ 1&#34;而不是&#34; /index.php/$1"

确保您已设置EE(管理员 - >常规配置),以及#34;您网站的索引页面的名称&#34;是空白的。

请记住,一旦你在没有出现index.php的情况下让EE工作,它可以两种方式使用(有和没有),这对SEO有害,所以删除它就像这样(在上面的重写之前放置:)

# Redirect index.php Requests (prevent site showing index.php in browser address bar)
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]