.htaccess Удалить расширение URL, Добавить косую черту - PullRequest
3 голосов
/ 01 апреля 2012

Я пытался заставить это работать на сервере моего клиента для веб-сайта, который я разрабатываю, но я просто не могу заставить его работать. В основном я пытаюсь удалить расширения .html и добавить косую черту (в строке URL).

Так что, если кто-то входит:

-example.com / home / ----------- переходит на ----- example.com/home/

-example.com / home ------------ переходит на ----- example.com/home/

-example.com / home.html ------ идет на ----- example.com/home/

-example.com / home.html / ----- идет на ----- example.com/home/

-example.com / home / .html ----- идет на ----- example.com/home/

-example.com / home / .html / ---- идет на ----- example.com/home/

Вот мой пока .htaccess, который работает ОТЛИЧНО и делает все, что я хочу, кроме добавления косой черты в конце.

Вот этот код:

#force www
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*) http://www.%{HTTP_HOST}/1 [R=301,L]

# remove .html ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.html\sHTTP/1)
RewriteRule ^(.+)\.html /1 [R=301,L,QSA]

# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/ /1 [L,R=301]

# rewrite to FILENAME.html if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*) /1.html [L,QSA]

Все мои файлы, размещенные на сервере, находятся в форме FILENAME.html и расположены в корневом каталоге.

Так что, если кто-нибудь может мне помочь, я был бы очень признателен.

1 Ответ

2 голосов
/ 01 апреля 2012

Измените файл .htaccess и вставьте следующее

Объяснение: http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/

Пример:

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

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

Обновите ссылки на страницах

Затем все гиперссылки, ссылки CSS, изображения и т. Д. Необходимо будет обновить, чтобы они имели абсолютный URL (http://www.site.com/style.css) или относительный и начинались с ../.В противном случае вы столкнетесь с такими проблемами, как CSS, который не загружается, ссылки, которые не работают, и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...