Вопрос по .htaccess – Сделать корневую веб-папку подпапкой с .htaccess?

12

Я работаю над довольно сложным проектом, поэтому я хотел бы использовать структуру файла / папки, которая имеет смысл.

The folder/file structure I'd like to have is:

.htaccess
/php/
/assets/

I'd like to have the web pages that people will access in:

/php/views/pages/

Мне интересно, можно ли использовать просто.htaccess установить/php/views/pages как "видимый корень", например, когда люди посещаютhttp://mydomain.com/ они будут просматриватьhttp://mydomain.com/php/views/pages/index.phpи если да, то как мне это сделать?

Кроме того, возможно ли канонизировать весь доступ к/php/views/pages с помощью.htaccess и перенаправление 301, чтобы остановить индексирование нескольких ссылок в поисковых системах?

Почему вы не можете изменитьDocumentRoot Директива? Ignacio Vazquez-Abrams

Ваш Ответ

1   ответ
26

If you don't have access to your host configuration

DocumentRoot может использоваться только в конфигурациях серверов и виртуальных хостов, .htaccess должен быть.

Let's add directives in your .htaccess

RewriteEngine on

I assume you want to let the requests to /assets go through

#if a match for asset is found, do nothing
RewriteRule ^assets/ - [L]

If a request tries to access /php/views/pages/ directly, redirect it to its canonical version

RewriteCond %{THE_REQUEST} php/views/pages/
RewriteRule ^php/views/pages/(.*) http://mydomain.com/$1 [R=301,L]

And add a rule to map everything else to /php/views/pages/

RewriteCond %{REQUEST_URI} !php/views/pages/
RewriteRule ^(.*)$ /php/views/pages/$1 [L]
If you have access to your host configuration

Забудьте о файлах .htaccess и используйте его. Пример конфигурации может выглядеть так

# ~base stands for your original DocumentRoot
<VirtualHost *:80>
    DocumentRoot ~base/php/views/pages
    Alias /assets ~base/assets

    # other configuration parameters
</VirtualHost>
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Avicinnian

Похожие вопросы