как переписать example.com/abc.html чтобы example.com/abc

#apache #.htaccess #mod-rewrite

Вопрос:

Я пытаюсь использовать приведенный ниже код, но он не работает для меня

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

Комментарии:

1. Как это связано с PHP?

2. Кажется, это работает на меня..

3. Пожалуйста, объясните, что вы подразумеваете под «не работает». Этот код делает противоположное тому, что вы указываете в названии. Однако вам не следует «переписывать» с /abc.html на /abc .

4. Я имею в виду, что мне нужно открыть mdaziz.co.in/abc.html но я хочу, чтобы URL-адрес был mdaziz.co.in/abc это. Я использовал приведенный выше код для исправления, но не получил решения, так что можете ли вы помочь?

5. Да, приведенный выше код уже делает это. Когда вы запрашиваете URL /abc -адрес, приведенное выше правило внутренне переписывает запрос, на /abc.html который затем подается. Вы предполагаете, что этого не происходит? Или вы ожидаете, что ваши URL-адреса будут волшебным образом изменены с /abc.html на /abc в вашем HTML-источнике? Потому что он этого не делает, если вы этого ожидаете?

Ответ №1:

Простое решение-включить мультивидение в Apache.

MultiViews скрывает расширение файла в URL-адресе.

 lt;Directory "/folder/subfolder/subfolder"gt;   Options  MultiViews   lt;/Directorygt;