Лента новостей

Кредит под залог недвижимости
Необходимость в займе финансовых средств может возникнуть как у частного лица, так и предприятия. Сегодня кредитование не является особенной проблемой и, например, получить кредит под залог недвижимости

Недвижимость
Наша великая Родина богата прекрасными населенными пунктами и городами с удивительной архитектурой и комфортными условиями жизни. Конечно, очень привлекательна в этом плане Новосибирск, который расположен

Недвижимость новая рига
Хотите почувствовать себя королями? Хотя нет, так наверное могут жить только боги недвижимость новая рига. Элитный поселок с замечательной архитектурой, открытым спа, бассейнами, фонтанами. Все находиться

Инвестиции в недвижимость Европы: тенденции 2017 года
Для инвесторов: обзор ключевых рынков европейской недвижимости в 2017 году. Недвижимость в Германии Доля недвижимости Германии в ВВП страны сегодня составляет 9,8%. Недвижимость в Германии отличалась

Дешевая Польская недвижимость
Если по какой-то причине мы решили продать квартиру, безусловно, мы хотим, чтобы это сделать как можно скорее и по лучшей цене. Тем не менее, для этого можно, мы должны быть готовы. Ничто не остановит

«Недвижимость» / Госкорпорации отказано в эффективности
По результатам проверки Счетной палатой деятельности Фонда содействия реформированию жилищно-коммунального хозяйства ( Фонд ЖКХ), площадь аварийного жилья в стране выросла на 1,6 млн. квадратных метров

Лизинг недвижимости
Обычно компании берут аванс - 10-20 % со ставкой удорожания 6-8 %, иногда 10-12% в год на срок от 2 до 10 лет, предлагая различные варианты графиков лизинговых платежей. занимаются примерно десяток компаний

Специалист по недвижимости
Наша компания стремиться дать широкие возможности, удобство в работе без лишних трат всем участникам рынка недвижимости Крыма. Аренда квартир, комнат, коттеджей, продажа в Санкт-Петербурге Гильдия риэлторов

Коммерческие помещения | Жилье, недвижимость > Коммерческие помещения | Киев | SLANET
class="top_line"> id="topnav"> class="subcolumns" id="logonav"> id="nav demo" class="hlist"> id="topnav"> id="header_tab"> id="content"> class="c75l"> class="c25r"> class="subcolumns"> class="c75l">

Юрист по недвижимости
При осуществлении такой юридически сложной и трудоемкой сделки, как покупка или продажа квартиры или участка земли, достаточно часто возникает необходимость обращения за специализированной юридической

Przyjazne SEO adresy URL w Yii2

  1. Podstawowy szablon
  2. Ukryj folder internetowy
  3. Zaawansowany szablon
  4. Linki z zaplecza do frontendu
  5. Ciągnięcie ukośnika
  6. Konfigurowanie Apache bezpośrednio
  7. Zasady

Ten samouczek zawiera informacje na temat konfiguracji Apache i konfiguracji Yii2 w celu uzyskania przyjaznych dla użytkownika i przyjaznych dla wyszukiwarek adresów URL dla Twojej aplikacji internetowej.

Podstawowy szablon

Urzędnik Yii2 dokumentacja ma stronę o konfiguracji hostingu współdzielonego, która stanowi przykład tego, jak można skonfigurować Apache dla przyjaznych SEO adresów URL przy użyciu pliku .htaccess.

Opcje + FollowSymLinks IndexIgnore * / * RewriteEngine na # jeśli istnieje katalog lub plik, użyj go bezpośrednio RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D # w przeciwnym razie przekaż go do index.php RewriteRule. index.php

Następnie musisz skonfigurować urlManager w pliku config / web.php.

$ config = [// ... 'components' => ['urlManager' => ['class' => 'yii web UrlManager', 'showScriptName' => false, 'enablePrettyUrl' => true,], // ...

Jeśli aplikacja znajduje się w folderze głównym, trasy będą wyglądać mniej więcej tak: http://twojadomena.com/web/site/index, w przeciwnym razie jeśli aplikacja Yii2 znajduje się w podfolderze, mogą wyglądać tak : http: // twoja_domena .com / app / web / site / index .

Ukryj folder internetowy

Możesz pozbyć się części internetowej adresu URL, przenosząc wszystkie pliki z folderu sieciowego do folderu głównego aplikacji i zmieniając ścieżki w pliku index.php, ale ta metoda będzie mieszać zawartość folderu / assets / i / / web / assets / folder. Dlatego to rozwiązanie jest lepiej dostosowane do zaawansowanego szablonu aplikacji, chyba że chcesz przenieść cały kod wraz z folderem dostawców do osobnego folderu, takiego jak Yii 1.x.

Lepszym sposobem rozwiązania tego problemu jest dodanie dodatkowego pliku .htaccess do katalogu głównego aplikacji.

Opcje -Indexes RewriteEngine na RewriteRule ^ (. *) $ Web / $ 1 [L]

Zauważ, że będzie to działać tylko wtedy, gdy w katalogu internetowym znajduje się wspomniany wcześniej plik .htaccess. W przeciwnym razie żądanie zostanie przechwycone w wewnętrznej pętli przekierowania.

Istnieje wiele stron internetowych, które pokazują podobne konfiguracje, które są bardziej złożone. Ponieważ przekierowujemy wszystkie żądania do folderu sieciowego, nie ma potrzeby odmawiania dostępu do plików, które zaczynają się od kropki, plików JSON i tym podobnych. W podstawowym szablonie nie ma żadnego z tych plików w folderze internetowym. Dla zaawansowanego szablonu możesz odmówić dostępu do plików dotf, dodając te linie.

<Files ~ "(^ | /))>> Pozwól na zamówienie, odrzuć Odmów od wszystkich </Files>

Teraz musimy powiedzieć Yii, że nasz podstawowy adres URL się zmienił. Robimy to konfigurując baseUrl dla urlManager i komponent żądania w config / web.php.

$ config = [// ... 'components' => ['urlManager' => ['class' => 'yii web UrlManager', 'showScriptName' => false, 'enablePrettyUrl' => true, 'baseUrl '=>' / ',],' request '=> [' baseUrl '=>' ', // ...], // ...

Jeśli twoja aplikacja znajduje się w podfolderze, umieść nazwę podfolderu w parametrze baseUrl 'baseUrl' => '/ app',.

Zaawansowany szablon

Możemy skonfigurować zaawansowany szablon podobnie jak podstawowy szablon. Pliki .htaccess w folderach internetowych będą takie same. Jednak plik .htaccess dla folderu głównego będzie inny, aby umożliwić żądania do aplikacji zaplecza.

Opcje -Indexes RewriteEngine na # jeśli żądanie nie jest do backendu, przekieruj go do / frontend / web RewriteCond% {REQUEST_URI}! ^ / Backend RewriteRule ^ (. *) $ / Frontend / web / $ 1 [L] #otherwise route żądanie do backendu RewriteRule ^ backend /(.*)$ backend / web / $ 1 [L]

Reguły te nie powodują pętli przekierowania, ponieważ żądanie jest przepisywane przez reguły w pliku .htaccess katalogu WWW .

Nie zapomnij skonfigurować baseUrl dla komponentu żądania i urlManager.

Linki z zaplecza do frontendu

Oficjalna dokumentacja sugeruje, że aby utworzyć linki z aplikacji zaplecza do aplikacji frontendowej oraz z aplikacji frontendowej do aplikacji backendowej, musimy skonfigurować dodatkowy komponent kend urlManagerBac dla aplikacji frontendowej.

'urlManager' => ['class' => 'yii web UrlManager', 'baseUrl' => '', 'enablePrettyUrl' => true, 'showScriptName' => false,], 'urlManagerBackend' => [' class '=>' yii web UrlManager ',' baseUrl '=>' / backend ',' enablePrettyUrl '=> true,' showScriptName '=> false,],

Oraz dodatek urlManagerFrontend dla aplikacji zaplecza.

'urlManager' => ['class' => 'yii web UrlManager', 'baseUrl' => '/ backend', 'enablePrettyUrl' => true, 'showScriptName' => false,], 'urlManagerFrontend' => ['class' => 'yii web UrlManager', 'baseUrl' => '', 'enablePrettyUrl' => true, 'showScriptName' => false,],

Następnie możesz ich używać w następujący sposób: $ frontendUrl = Yii :: $ app-> urlManagerFrontend-> createUrl (['site / index']);

Jest to świetne, gdy nie masz żadnych reguł URL, w przeciwnym razie nie tylko będziesz musiał duplikować wszystkie reguły, ale będziesz też musiał je zmieniać w dwóch miejscach. Aby tego uniknąć, możesz zapisać konfigurację dla urlManagers w osobnych plikach i załadować ją za pomocą funkcji require.

'urlManager' => require ('urlmanager.php'), 'urlManagerBackend' => require ('../../ backend / config / url-manager.php'),

Dla zaplecza:

'urlManager' => require ('urlmanager.php'), 'urlManagerFrontend' => require ('../../ frontend / config / url-manager.php'),

W ten sposób możesz zachować konfigurację w plikach url-manager.php.

&lt;? php return ['class' => 'yii web UrlManager', 'showScriptName' => false, 'enablePrettyUrl' => true,];

Ciągnięcie ukośnika

Jeśli kiedykolwiek korzystałeś nibbler mógłbyś otrzymać powiadomienie o problemie z końcowym ukośnikiem.

Możesz to naprawić, dodając te dwie linie do pliku /web/.htaccess bezpośrednio po RewriteEngine na :

RewriteCond% {REQUEST_FILENAME}! -D RewriteRule ^ (. *) / $ / $ 1 [L, R = 301]

Konfigurowanie Apache bezpośrednio

Pliki .htaccess są wygodne, ponieważ można je spakować razem z aplikacją i ponieważ nie trzeba ponownie uruchamiać Apache po zmianie czegoś w pliku .htaccess, aby zmiany zaczęły obowiązywać. Ale musisz także zapłacić za wydajność, ponieważ Apache musi skanować pliki .htaccess przy każdym żądaniu. Aby tego uniknąć, możesz skonfigurować Apache z httpd.conf.

Oto przykładowa konfiguracja, której użyłem do wirtualnego hosta na komputerze z systemem Windows.

<VirtualHost *: 80> ServerAdmin webmaster @ mytestapp DocumentRoot "C: wampir www mitestapp frontend Strona internetowa" ServerName mytestapp ErrorLog "logs / mytestapp-error.log" CustomLog "logs / mytestapp-access.log" wspólny alias / admin "C: wampir www testestapp end WWW" <Directory "C: wampir www testestapp front web"> RewriteEngine on RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule. index.php AllowOverride None Order allow, deny Allow from all </Directory> <Directory "C: wampe www mitestapp end WWW"> RewriteEngine on RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! - d RewriteRule. index.php AllowOverride None Order allow, odmowa Allow from all </Directory> </VirtualHost>

Zauważ, że w tej konfiguracji aplikacja zaplecza jest dostępna za pośrednictwem trasy / admin.

Zasady

Teraz, kiedy mamy już konfigurację, możemy zacząć ulepszać nasze adresy URL.

'urlManager' => ['class' => 'yii web UrlManager', 'baseUrl' => '/', 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableStrictParsing' => true, ' rules '=> [' / '=>' site / index ',' about '=>' site / about ',' contact '=>' site / contact ',' login '=>' site / login ',' logout '=>' site / logout ',' captcha '=>' site / captcha ',' signup '=>' site / signup ',' request-password-reset '=>' site / request-password-reset ' , 'reset-password' => 'site / reset-password',],],

'enableStrictParsing' => true, mówi Yii2, aby zezwalał tylko na trasy wymienione w regułach. Do Ciebie należy decyzja, czy tego chcesz, czy nie.

Wkrótce pojawi się samouczek dotyczący zaawansowanego trasowania za pomocą urlManager.

Związane z

Lt;?