2015-05-07 3 views
1

В настоящее время я улучшаю удобство использования веб-сайта с помощью дружественных URL-адресов. Я несколько раз сделал и то, что я обычно делаю это скрыть * .php или расширение * .html с помощью .htaccess после этого кода:Ошибка 404 с использованием RewriteRule в .htaccess

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 

Однако этот код, кажется, сопротивляется работать на сервере этого сайта в хостинге. Я получаю 404 не найденную ошибку, если я пытаюсь получить доступ без добавленного расширения.

http://www.leddream.es/alquilar-pantalla-led.html

http://www.leddream.es/alquilar-pantalla-led

Любые идеи, как решить эту проблему?

+0

Включен ли модуль перезаписи? – starkeen

+0

Да, это так. Я также добавляю www. к запросам, которые приходят без него и отлично работают @Starkeen –

+0

Спасибо за предложение @anubhava. Файл .htaccess работает нормально. –

ответ

1

В вашем .htaccess просто включить MultiViews опцию для включения расширения меньше URI.

Options +MultiViews 

Опция MultiViews используется Apache's content negotiation module, который работает передmod_rewrite и делает сервер Apache расширения соответствия файлов. Таким образом, /file может быть в URL-адресе, но он будет обслуживать /file.html.

Прокомментировать все остальные правила перезаписи после добавления этой строки.

0

Попробуйте это:

RewriteEngine On 
RewriteBase/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.html [NC,L] 
+0

Не работает. Я попробовал это решение и раньше. Спасибо за предложение @Starkeen –