2014-01-05 2 views
1

Я знаю, что это довольно распространенная задача и обсуждалось здесь много, но я все еще не могу заставить ее работать. После некоторых исследований я добавил этот код в свой .htaccess файл.Удаление расширения файла url в .htaccess

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.*)$ $1.html 

Но он по-прежнему не работает и отображает .html на моих страницах. Что может быть неправильным?

Благодаря

ответ

0

Вам необходимо дополнительное правило для внешнего перенаправления foo.html на foo. У вашего .htaccess вот так:

RewriteEngine on 

RewriteCond %{THE_REQUEST} \s/+(.+?)\.html[\s?] [NC] 
RewriteRule^/%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.html -f 
RewriteRule ^(.+?)/?$ /$1.html [L] 
+0

Хмм, все еще не работает. Но это странно. Когда у меня есть .htaccess в корневом каталоге, мои страницы загружаются как /index.html - и когда я удаляю .html, он дает мне эту ошибку 404: запрошенный URL /web/index-en.html не найден на этом сервер. Но когда я полностью удаляю .htaccess, он по-прежнему загружается в формате index.html, но когда я удаляю .html, сайт тоже загружается. – Mike94

+0

см. Обновленный код, убедитесь, что он находится в корневом каталоге вашего сайта. – anubhava

+0

Я понял другую опечатку и исправил ее. Можете ли вы снова попробовать обновленный код. – anubhava

Смежные вопросы