Убрать расширение у страницы и поставить слэш

HL
На сайте с 12.12.2012
Offline
118
2084

Доброй ночи друзья. Битый час мучаюсь и не могу разобраться, как убить расширение у файла и заменить его на слеш. Сам сайт имеет урлы без расширений и со слешем, но из-за внедрения дополнительного скрипта в папку, у части сайта следующая структура:

site.ru/folder/file.php

в папке "folder" (тут лежит наш внедренный скрипт) лежит .htaccess в него прописываю код:

RewriteRule ^(([^/]+/)*[^.]+)$ /.php [L]

Но он упорно отказывается срабатывать :( Если пытаюсь перейти по урлу site.ru/folder/file/, то выдает 404 ошибку.

В чем моя ошибка ? Спасибо.

- Дорогой выкуп баннерных показов (https://goo.gl/Haxr87). Советую! - СеоПульт (https://seopult.ru/ref/0c1642776e7e1b04) + крауд-ссылки (https://goo.gl/3eXcqn) = успех - Проверенный CashBack сервис (https://goo.gl/mAIbxw). До 30%
J
На сайте с 20.02.2014
Offline
120
jkm
#1

.htaccess в папке folder.


RewriteEngine On

RewriteCond %{DOCUMENT_ROOT}/folder/$1.php -f
RewriteRule ^(.+)/$ $1.php [L]
HL
На сайте с 12.12.2012
Offline
118
#2

jkm, встречал подобную конструкцию на просторах интернета. Все равно 4040 возвращает. Вот мой .htaccess для папки:

Options +FollowSymLinks

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

#Убираем расширение файла из URL
RewriteCond %{DOCUMENT_ROOT}/folder/$1.php -f
RewriteRule ^(.+)/$ $1.php [L]

# Редирект на домен с www
RewriteCond %{HTTP_HOST} ^site.ru
RewriteCond %{REQUEST_URI} folder
RewriteRule ^(.*)$ http://www.site.ru/folder/ [L,R=301]

</IfModule>

# Указываем кодировку по умолчанию
AddDefaultCharset UTF-8

# Делаем файлы index.php в директориях "чистыми"
Options All -Indexes

# 404 ошибка
ErrorDocument 404 http://www.site.ru/404/
HL
На сайте с 12.12.2012
Offline
118
#3

Подниму тему, решение до сих пор не найдено (((

S
На сайте с 30.09.2016
Offline
469
#4
HotLab:
решение до сих пор не найдено (((

Ну потому что Вы тут наморочили условий - и файл htaccess в папку folder надо положить, и структура самой папки не совсем понятна. Короче, в простейшем случае так:

RewriteEngine On

RewriteBase /folder

RewriteRule ^([^./]+)/?$ ./$1.php [L]
Отпилю лишнее, прикручу нужное, выправлю кривое. Вытравлю вредителей.
HL
На сайте с 12.12.2012
Offline
118
#5

Sitealert, спасибо. Заработало. Единственное НО, если прописываю редирект со страниц с php на страницы со слешем, то отказывает открываться (((

Теперь сижу ломаю голову, в чем причина и как ее победить ... В противном случае страница доступна по 2м адресам, а это дубль. Можно конечно в роботсе запретить, но хотелось бы сохранить вес старых страниц...

S
На сайте с 30.09.2016
Offline
469
#6

Штоле так?

RewriteEngine On

RewriteBase /folder

RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^([^./]+)\.php/?$ $1 [R=301,L]
RewriteRule ^([^./]+)/?$ ./$1.php [L]
HL
На сайте с 12.12.2012
Offline
118
#7

Sitealert, тип того. В этом случае все страницы с php редиректит на главную скрипта, меня это устраивает. Но скрипт при этом перестает работать (((

S
На сайте с 30.09.2016
Offline
469
#8

Тут уже надо со скриптом разбираться, как он должен работать и почему не работает.

HL
На сайте с 12.12.2012
Offline
118
#9

Sitealert, скрипт анонимайзера glype.com

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий