Как удалить .html и добавить косую черту в конце URL - PullRequest
0 голосов
/ 09 января 2019

Я пытался удалить расширения .html и добавить косую черту в конце строки URL.

У меня есть определенный экземпляр, как показано ниже

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

example.com - идет к - example.com/

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

example.com / index - идет к - example.com/

и

example.com / first-page.html - идет на - example.com/main-page/ , но идет как example.com/main-page

example.com / parent-page / index.html - идет на - example.com/parent-page/ (работает)

example.com / parent-page / child-page.html / - идет по адресу - example.com/parent-page/child-page/ , но поставляется как example.com/parent-page/child -page

Вот мой .htaccess, я хочу добавить косую черту в конце URL.

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]

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

1 Ответ

0 голосов
/ 09 января 2019

Если вы хотите удалить расширение .html из файла HTML, например, yoursite.com/wallpaper.html на yoursite.com/wallpaper, вам просто нужно изменить последнюю строку кода выше, чтобы соответствовать имени файла

Удаление расширений .html

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

Добавление косой черты в конце

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.html
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.html
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

Для более подробной информации нажмите здесь

...