Механизм выражений удаляет index.php, используя .htaccess не работает - PullRequest
0 голосов
/ 24 марта 2012

У моего клиента есть виртуальный выделенный сервер Godaddy (да, я знаю, что он отстой) .... На нем работает WHM VPS Optimized.

Я пытаюсь удалить index.php из URL, но мой сервер все еще отображает 404 ошибки, которые я просматривал на каждом форуме в юниверсе, и не могу получить работающий файл 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 голосов
/ 24 марта 2012

Проверьте, работает ли 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 работает, попробуйте "$ 1" вместо "% {REQUEST_URI}":

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

Также попробуйте "/index.php?/$1" вместо "/index.php/$1"

Убедитесь, что вы установили EE (Admin-> General Configuration), чтобы "Имя страницы индекса вашего сайта" было пустым.

Помните, что как только вы заставите EE работать без появления index.php, его можно использовать обоими способами (с и без), что плохо для 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]
...