#apache #.htaccess #redirect
#apache #.htaccess #перенаправление
Вопрос:
Я хотел бы перенаправить все, что не начинается с /X
, на /X
, и, я пытаюсь сделать это, используя .htaccess
with this content:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(?!/X)
RewriteRule ^(.*)$ /X/$1
Чего мне не хватает?
РЕДАКТИРОВАТЬ:
я тоже пробовал:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/X
RewriteRule ^(.*)$ /X/$1 [L]
и использование этого инструмента кажется, что это должно сработать, но, например www.site.com/style.css
Теперь это работает…
Ответ №1:
Пусть это будет так:
RewriteEngine On
RewriteCond %{THE_REQUEST} !s/ alsiniga/X[/?s] [NC]
RewriteRule ^ /alsiniga/X%{REQUEST_URI} [L,R=301,NE]
Комментарии:
1. это тоже работает в валидаторе, но не на сервере
2. Тот онлайн-инструмент, который вы используете, совершенно бесполезен. Убедитесь в том, что вы тестируете только на своем собственном Apache. Если это не работает, пожалуйста, укажите свой полный URL-адрес, который не был перенаправлен?
3. конечно, «X» — это папка «alsiniga», URL — это
http://localhost:8080/alsiniga/file.css
… моя проблема в том, что внутри всех файлов в моем проекте используется абсолютный путь, это означает, что/alsiniga/index.html
ссылается на/style.css
то, что на самом деле находится внутриhttp://localhost:8080/alsiniga/style.css
… Я добавил.htaccess
in оба/
и in/alsiniga/
, но это не работает… возможно, виртуальный хост apache имеет root/alsiniga/
и поэтому игнорируетhtaccess
in/