Я прочитал этот .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
И вы остаетесь внутри проекта.