2016-05-13 2 views
0

Эй, ребята, я не могу понять, почему мое перенаправление не работает. Попытка перенаправить/home и/index на главную главную страницу ... вот что на моем .htaccess. Есть что-то, что блокирует или вызывает это?301 перенаправление через .htcaccess собирается /? Page = home

Все, что произошло при переадресации 301, было предварительно опробовано & ошибкой и не было уверенно, нужно ли мне что-либо менять/удалять.

Я пытался тонн различных вещей, и я только получаю либо внутреннюю страницу 500 servor или /? Страница = домашняя

redirect 301 /home http://example.com 

Options -Indexes +FollowSymLinks 
RewriteEngine on 
RewriteBase/


RewriteCond %{THE_REQUEST} \.html 
RewriteRule ^(.*)\.html$ /$1 [R=301,L] 

RewriteRule ^stats\/$ awstats/awstats.pl?config=www.example.com [R,L] 
RewriteRule ^awstats\/$ awstats/awstats.pl?config=www.example.com [R,L] 


# Redirect any requests for html files to index 
RewriteRule ^(.+)\.html index.php?page=$1 [L] 

# Rewrite any request for subdirectories to index 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ index.php?page=$1 [L,QSA] 

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
+0

В вашем файле, кажется, есть некоторые противоречия. Во-первых, у вас есть два разных правила для html-файлов. Один, который удаляет расширение, а другой, который перенаправляет их на index.php. Далее, набор правил выглядит неправильно. Вы всегда должны помещать эти виды перенаправления вверху, прежде чем переписывать. –

+0

@MikeRockett Rockett Я предполагаю, что «RewriteCond% {THE_REQUEST} \ .html RewriteRule^(. *) \. Html $/$ 1 [R = 301, L]" является листинг? и перенаправление на/about, а не на /about.html? Я не уверен, почему .html пересылается в index.php, это 404 тип шаблона. Удалил бы это что-нибудь больно? Также спасибо за помощь. Не могли бы вы скопировать вставку правильного порядка? – dhath

+0

Да, поэтому я думал, что это не нужно. Пожалуйста, см. Мой ответ. –

ответ

0

Пожалуйста, смотрите мой комментарий в этом вопросе, и попытаться с код ниже. Надеемся, что комментарии кодов и новый порядок наборов правил дадут вам четкое представление о том, как это должно работать.

Options -Indexes +FollowSymLinks -Multiviews 

RewriteEngine on 
RewriteBase/

# Remove "www." 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=302,L] 

# Remove ".html" 
RewriteCond %{THE_REQUEST} \.html 
RewriteRule ^(.*).html$ /$1 [R=302,L] 

# Redirect "home" and "index" to document root 
# > Here, the expression (home|index) means "home or index" 
# > Trailing slash is optional 
RewriteRule ^(home|index)/?$/[R=302,L] 

# Redirect "awstats" or "stats" to "awstats.pl" 
# > The (aw)? makes "aw" optional 
# > Trailing slash is optional 
RewriteRule ^(aw)?stats/?$ awstats/awstats.pl?config=www.example.com [R=302,L] 

# Rewrite any request for non-existing files to index 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)$ index.php?page=$1 [L,QSA] 
+0

один вопрос, будет делать дома | индексировать постоянную работу перенаправления? а не временным? – dhath

+0

Не влияет на функциональность. Использование '302' - это то же самое, что использовать' R' самостоятельно. Разница между '301' и' 302' - это просто инструкция для браузеров и поисковых систем для кэширования перенаправления, что подразумевает * постоянный *. –

+0

Всегда проверяйте с помощью '302', а затем используйте' 301' на производстве. –

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