Перенаправление в другую папку

Я прочитал этот .htaccess переписать для перенаправления корневого URL-адреса в подкаталог, и я пытаюсь добиться того же.

Решение с большинством голосов было:

RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,L] RewriteRule ^$ store [L] 

Теперь, глядя на комментарии, кажется, что они работают хорошо. Проблема в том, что я хотел бы не жестко указывать какой-либо путь (как указано выше «www.example.com»). Мне бы хотелось, чтобы мой .htaccess внутри projectname/ перенаправлялся к projectname/public/ несмотря на то, что настоящий хост сервера. Поэтому, если я помещаю имя projectname/ внутри корневого сервера www.pinco.com он перенаправляется на сайт www.pinco.com/projectname/public/ но он показывает www.pinco.com/projectname/ .

Как я могу это достичь?

Пример, который вы нашли, на самом деле делает две разные вещи.

 # This is actually just redirecting all http://example.com/somepage/ # to http://www.example.com/somepage/, to ensure all URLs have the www. RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule (.*) http://www.example.com/$1 [R=301,L] 

Второе переписывание – это то, что поможет вам достичь того, что вы пытаетесь сделать.

 # This redirect all requests for http://example.com -> http://example.com/newdir # If you are looking to redirect the request, so the URL contains directory name, # you can change the [L] to [R=301,L] RewriteRule ^$ /newdir [L] # If your concerned about direct access to a particular page without the sub-dir # you will want to add something like this RewriteCond %{REQUEST_URI} !^/newdir RewriteRule (.*) /newdir$1 [R=301,L] 

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

попробуйте добавить эту строку и:

 RewriteBase /projectname 

И вы остаетесь внутри проекта.