Улучшить расширение hide. php с помощью .htaccess - в настоящее время имена файлов с дефисами получают 404 - PullRequest
0 голосов
/ 10 июля 2020

Мой код работает , кроме . Я получаю 404 для страниц с файлами, содержащими дефисы (и другие специальные символы).

Другими словами, «www.example.com/page.php» отображается как «www.example.com/pages ", но" www.example.com/pages-pages.php "выдает ошибку 404 - страница не найдена.

Мой код:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/
RewriteRule ^(.*)index$ https://www.example.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ https://www.example.com/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/
RewriteRule ^(.+)\.php$ https://www.example.com/$1 [L,R=301]
RewriteRule ^([a-z]+)$ /$1.php [L]

Я предполагаю, что мне нужно указать специальные символы, это нормально, но Не знаю как.

1 Ответ

0 голосов
/ 14 июля 2020

Благодаря CBroe (или @CBroe) я придумал следующее:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\ HTTP/
RewriteRule ^(.*)index$ https://www.example.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ https://www.example.com/$1 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.+)\.php\ HTTP/
RewriteRule ^(.+)\.php$ https://www.example.com/$1 [L,R=301]
RewriteRule ^([0-9a-zA-Z-_]+)$ /$1.php [L]

Исходный код разрешал только имена файлов с строчными буквами в них, в противном случае будет выдано сообщение «Ошибка 404 - Страница Не обнаружена". В приведенном выше коде последняя строка разрешает файлы со всеми буквами a – z (верхний и нижний регистры), а также дефисами и подчеркиваниями в именах.

Я хотел бы разрешить использование специальных символов, но многие из них должны быть сбежал, и я не знаю, какие из них и как это сделать (вероятно, просто \). На данный момент этого достаточно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...