Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   ЧПУ в htacces нужно ли делать редиректы со старых урл, если дублируют страницу? (https://javascript.ru/forum/server/75876-chpu-v-htacces-nuzhno-li-delat-redirekty-so-starykh-url-esli-dubliruyut-stranicu.html)

Nexus 16.11.2018 13:34

Zhenyaxxxx, у вас точка входа - index.php?

Zhenyaxxxx 16.11.2018 13:39

Цитата:

Сообщение от Nexus
Zhenyaxxxx, у вас точка входа - index.php?

Что это значит? для дураков...

Nexus 16.11.2018 13:39

Zhenyaxxxx, какой файл все запрос обрабатывает?

Zhenyaxxxx 16.11.2018 13:46

index.php обрабатывает... потом уже в htaccess я его прячу... и после этого переключаю страницы SWITH
/?page=страница
После ввода кода в htaccess:
RewriteEngine on
RewriteRule ^([^/.]+)/?$ ?page=$1 [L]


переделал все ссылки на чпу

Nexus 16.11.2018 13:52

Zhenyaxxxx, ок, если так, то index.php должен получать запрос с get-параметром page.
В index.php в начало вставьте это:
var_dump(isset($_GET['page'])?$_GET['page']:'not-set');
exit;

И посмотрите, что выведет.

Zhenyaxxxx 16.11.2018 13:59

string(9) "index.php"

Zhenyaxxxx 16.11.2018 14:03

index.php - это название страницы в Базе данных из которой я вытягиваю наполнение главной

то есть по старому адресс мог бы звучать так: site.com/?page=index.php

laimas 16.11.2018 14:15

Цитата:

Сообщение от Zhenyaxxxx
site.com/?page=index.php

Уже плохо, так как site.com/ это и есть запрос индексной страницы.

Nexus 16.11.2018 14:18

Zhenyaxxxx, попробуйте так:
AddDefaultCharset UTF-8

DirectoryIndex index.php

# ЧПУ
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\/?$ index.php?__no-redirect&page=$1 [QSA,L]

# Rewrite http -> https
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Rewrite [url]www.example.com[/url] -> example.com
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L]

# переадресация с index.php на /:
RewriteCond %{QUERY_STRING} !^__no-redirect$ [NC]
RewriteCond %{REQUEST_URI} ^index\.php [NC]
RewriteRule ^.*$ https://%{HTTP_HOST}/ [R=301,L]


# Rewrite /?page=index -> /index
RewriteCond %{QUERY_STRING} !^__no-redirect$ [NC]
RewriteCond %{QUERY_STRING} ^page=(.*)$ [NC]
RewriteRule ^(.*?)\/?$ "$1/%1?" [R=301,L]



# сжатие text, html, javascript, css, xml:
<ifModule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/css text/javascript application/javascript application/x-javascript
</ifModule>

# 404
ErrorDocument 404 [url]https://ensy.com.ua/block/404.php[/url]

Zhenyaxxxx 16.11.2018 14:20

в урле такого не бывает: site.com/?page=index.php

написал такое условие:

$page = empty($_GET['page']) ? 'index.php' : $_GET['page'];


Часовой пояс GMT +3, время: 18:51.