htaccess переписать URL для проекта laravel, чтобы исключить каталог папок из URL

#laravel #apache #.htaccess #mod-rewrite

#laravel #apache #.htaccess #мод-переписать

Вопрос:

Я установил сервер ubuntu 16.04, и у меня много проектов laravel в /var / www / html с числовой папкой, как показано ниже:

 <pre>
    121744
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.php   
         ....
</pre>


<pre>
    12877
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.php   
         ....
</pre>

<pre>
    8798
       content
         app
         bootstrap
         config
         database
         public
         resources
         routes
         storage
         tests
         vendor
         composer.json
         composer.lock
         server.php   
         ....
</pre>
  

В соответствии с указанной выше папкой для открытия приложения laravel в браузере URL-адрес выглядит следующим образом:

 http://example.com/121744/content/public

http://example.com/12877/content/public

http://example.com/8798/content/public
  

Содержимое URL-адреса является общим.
Я хочу удалить содержимое из URL-адреса, чтобы URL-адрес выглядел следующим образом:

 http://example.com/121744/public

http://example.com/12877/public

http://example.com/8798/public
  

Расположение файла .htaccess в var/www/html/.htaccess .

Пожалуйста, помогите мне, как мне заставить htaccess сделать это?

Комментарии:

1. Не уверен, что это просто ваша терминология, но вы не используете .htaccess для «удаления content из URL», как это. Вам нужно фактически изменить URL-адреса в вашем приложении, чтобы удалить content сами ссылки — вы уже это сделали? Затем вы должны использовать .htaccess для 2-й части, чтобы внутренне переписать URL-адрес, который не содержит content , чтобы добавить его обратно, чтобы URL-адрес «работал». (Только если вы уже изменили структуру URL-адреса и вам необходимо сохранить SEO, вы бы подумали о том, чтобы фактически «удалить» content из URL-адреса с помощью .htaccess .)

Ответ №1:

Не могли бы вы попробовать следующее.

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(d )/content/([w-] )/?$ /$1/$2 [NC,L]
  

Если ваш public каталог исправляется каждый раз, попробуйте:

 RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(d )/content/(public)/?$ /$1/$2 [NC,L]