Я новичок в htaccess и нуждаюсь в помощи для проверки ошибок в моих кодах htaccess ниже?
У меня есть 3 набора кодов переадресации и интересно, мешают ли они друг другу?
Также интересно, есть ли у меня избыточный код перенаправления.Ошибки в переадресации htaccess?
Также, в рамках «Стоп-кода Hotlinking», правильно ли это RewriteCond?
RewriteCond %{HTTP_REFERER} !^http://(www\.)%{HTTP_HOST}/.*$ [NC]
Моя цель состоит в том, чтобы сохранить www
и trailing slash
для моих URL-адресов, и удалить index.html
для моих URL- Вот мой файл .htaccess
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#Force Trailing Slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1/ [L,R=301]
#Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1/ [R=301,L]
#Redirect index.html
RewriteCond %{THE_REQUEST} ^.*/index.html [NC]
RewriteRule ^(.*)index.html$ http://www.%{HTTP_HOST}/$1/ [R=301,L]
#Stop Hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)%{HTTP_HOST}/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ - [F]
.
Edit:
Вопросы:
-Есть мой обновленный Htaccess ниже правильно?
-У Я поставил RewriteBase /
в верхней или оставить как есть (один с # Begin WordPress
правил и второй RewriteBase /
с # Force Trailing Slash
?
-У Мне нужно Options +FollowSymLinks
, и если да, то где я поставил это?
Обратите внимание, что I:
-Удален RewriteEngine On
и RewriteBase /
из правил WordPress и держал его в верхних
-Положите WordPress правил НИЖЕ перенаправляет
-Удалена конца хлещет для #Redirect non-www to www
и #Redirect index.html
RewriteEngine On
# Redirect non-www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# Redirect index.html
RewriteCond %{THE_REQUEST} ^.*/index.html [NC]
RewriteRule ^(.*)index.html$ http://www.domain.com/$1 [R=301,L]
# Force Trailing Slash
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1/ [L,R=301]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteBase/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Stop Hotlinking
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)domain.com/.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|bmp|zip|rar|mp3|flv|swf|xml|php|png|css|pdf)$ - [F]
Спасибо Jon. Думаю, я не должен настраивать код htaccess. Первоначально это был код, который я нашел в google: ----- RewriteCond% {HTTP_REFERER}!^Http: // (www \.) Domain.com/.*$ [NC] ---- Правильно ли это RewriteCond относительно код Stop Hotlinking? ---------- Кроме того, вы заметили какие-либо ошибки с моими другими кодами htaccess выше? Связано ли 3 набора переадресаций друг с другом? – leko
@leko, если вы знаете, каким будет ваше имя хоста, тогда 'RewriteCond% {HTTP_REFERER}!^Http: // (www \.) Domain.com/.*$ [NC]' в порядке. Проблема с вашими другими переадресациями заключается в том, что они все добавляют '/' в конце. –
Jon относительно «проблемы с вашими другими перенаправлениями заключается в том, что все они добавляют/в конце» ---- На самом деле исходный код НЕ имел косой черты в конце. Я добавил косую черту сам, потому что я думал, что должен поддерживать ее в соответствии с «Принудительным сползанием» RewriteRule. Неправильно ли моя логика? Должен ли я сохранить косую черту или удалить ее (относительно #Redirect не-www на www) (и в отношении #Redirect index.html)? – leko