2015-02-22 2 views
1

Я новичок в создании файла .htaccess и буду признателен вам за помощь в решении этой проблемы.Невозможно добавить трейлинг/

Я не могу добавить trailing / ко всем URL-адресам моего сайта. Я пробовал большинство ответов на StackOverflow, а также эту статью, но это просто не работало для меня, либо стили сломались, и не было добавлено / или просто нет / при попытке этих решений.

Возможно, существует определенный конфликт в правилах?

Вот что мой .htaccess выглядит как прямо сейчас:

# do not allow anyone else to read your .htaccess file 
<Files .htaccess> 
deny from all 
</Files> 

# forbid viewing of directories 
Options All -Indexes 

# hide this list of files from being seen when listing a directory 
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* 

# disable the server signature- helps with preformance 
ServerSignature Off 

RewriteEngine On 
RewriteBase/

# specific rule to show 1 URL but other URL is active 
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f [NC] 
RewriteRule ^([^/]+) $1.html [L] 

# hide /index 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index($|\ |\?) 
RewriteRule^/%1 [R=301,L] 

# add trailing/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_URI} !http://example.com 
RewriteCond %{REQUEST_URI} !(.*)/$ 
RewriteRule ^(.*)$ http://example.com/$1/ [L,R=301] 

Я хочу добавить отставая / ко всем URL, кроме http://example.com (я higing по умолчанию /index).

Как исправить это?

ответ

1

Ваши последние не выглядят правильно и, кроме того, ваши правила находятся в неправильном порядке. Попробуйте этот код:

# do not allow anyone else to read your .htaccess file 
<Files .htaccess> 
deny from all 
</Files> 

# forbid viewing of directories 
Options All -Indexes 

# hide this list of files from being seen when listing a directory 
IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* 

# disable the server signature- helps with preformance 
ServerSignature Off 

RewriteEngine On 
RewriteBase/

# hide /index 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index($|\ |\?) 
RewriteRule^/%1/ [R=301,L,NE] 

# add trailing/
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule ^[^.]+$ %{REQUEST_URI}/ [L,R=301,NE] 

# specific rule to show 1 URL but other URL is active 
RewriteCond %{DOCUMENT_ROOT}/$1\.html -f [NC] 
RewriteRule ^([^/]+) $1.html [L] 
+0

Его работа, но только после обновления каждый раз открываю новую страницу. Это не загрузка содержимого после обновления для некоторых страниц, потому что он ищет соответствующий файл на сервере. –

+1

Теперь он работает. Но код Javascript, похоже, не работает. Любая идея, почему? Вы можете проверить это по этой ссылке. –

+0

Я исправил часть Javascript, чтобы вытащить данные через AJAX. Теперь проблема - попробуйте щелкнуть некоторые ссылки из панели навигации и щелкнуть по логотипу, чтобы перейти на главную страницу. Теперь есть 2 '/'. Как я могу избавиться от этого? –

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