Я сожалею, если этот вопрос является дубликатом, но все, что я искал в Интернете, смутило меня, поэтому я снова отправляю этот вопрос, задавая свои потребности.
Поскольку я хочу, чтобы структура моего веб-сайта была чистой, я хочу отделить контент от конфигураций, поэтому я помещаю все страницы в папку /app
(так же, как приложение rails). Структура веб-сайта будет примерно такой:
. ├── app │ ├── index.php │ └── products │ └── index.php ├── configs └── layouts
Я узнал, как перенаправить корень в папку /app
в .htaccess
следующим образом:
RewriteEngine on RewriteRule ^$ /app [L]
Когда я обращаюсь к серверу, apache перенаправляет в папку /app
а URL-адрес – localhost/app
.
Я хочу переписать URL-адреса, чтобы удалить /app
. Например, когда я посещаю папку /products/
я не хочу, чтобы url выглядел следующим образом: localhost/app/products/
Я хочу, чтобы это выглядело так: localhost/products/
Я googled решение, и я узнал, что, в значительной степени, как это сделано для worpress, вам нужно только добавить:
RewriteEngine on RewriteRule ^$ /app [L] RewriteRule %{REQUEST_URI} ^/app/.* RewriteRule ^(.*)$ app/$1 [L]
однако это просто не работает, и apache возвращает 500 internal server error
.
Я пытался:
RewriteEngine on RewriteRule ^$ /app [L] RewriteRule %{REQUEST_URI} !^/app/ RewriteRule ^(.*)$ app/$1 [L]
а также
RewriteEngine on RewriteRule ^$ /app [L] RewriteRule %{REQUEST_URI} !^/app/.* RewriteRule ^(.*)$ app/$1 [L]
и оба возвращают 500 internal server error
.
Я также пробовал:
RewriteEngine on RewriteRule ^$ /app [L] RewriteCond %{REQUEST_URI} !^/app/ RewriteRule ^(.*)$ app/$1 [L]
но /app
все еще в URL!
Как я могу это сделать?
Пытаться :
RewriteEngine on #--Redirect /app/foobar to /foobar--# RewriteCond %{THE_REQUEST} /app/([^\s]+) [NC] RewriteRule ^ /%1 [NC,L,R] #--Rewrite /foobar to /app/foobar--# RewriteCond %{REQUEST_URI} !^/app RewriteRule ^(.*)$ /app/$1 [NC,L,QSA]