Изменить внешний вид URL с помощью htaccess mod_rewrite RewriteRule - PullRequest
0 голосов
/ 24 октября 2018

Трудно найти четкие объяснения синтаксиса Rewrite Engine в любом месте.Регулярные выражения знакомы, но остальное мне чуждо.

Нет ли способа скрыть http:// или https:// в URL, отображаемом в адресной строке?

Мой каталог выглядит следующим образом.

public_html/
    example/
        index.php
        whatever.php

Выпуск # 1

Это то, что сейчас происходит, что, очевидно, повсеместно.

URL THAT IS TYPED IN                         URL THAT DISPLAYS

https://www.example.com -------------------> https://www.example.com
https://example.com -----------------------> https://example.com
http://www.example.com --------------------> https://www.example.com/example/index.php
http://example.com ------------------------> https://example.com/example/index.php
www.example.com ---------------------------> https://www.example.com/example/index.php
example.com -------------------------------> https://example.com/example/index.php

ПервоеЯ хотел бы всегда вызывать следующее.

URL THAT IS TYPED IN                          URL THAT DISPLAYS

https://www.example.com/example/index.php --> example.com/index
https://www.example.com --------------------> example.com
https://example.com ------------------------> example.com
http://www.example.com ---------------------> example.com
http://example.com -------------------------> example.com
www.example.com ----------------------------> example.com
example.com --------------------------------> example.com

Issue # 2

Второе, что я хотел бы сделать, и я только что понял, как это сделать, этоочистить URL-адреса для подкаталогов и файлов.

ACCESS TO THIS FILE PATH                      URL THAT DISPLAYS

example.com/example/index.php --------------> example.com/index

Я знаю, что это можно сделать с помощью следующего RewriteRule.

RewriteRule ^index /mydomain/index.php [NC]

Но я также хотел бы принудительноURL для отображения следующим образом, несмотря ни на что.

URL THAT IS TYPED IN                          URL THAT DISPLAYS

https://www.example.com/example/index.php --> example.com/index
https://example.com/example/index.php ------> example.com/index
http://www.example.com/example/index.php ---> example.com/index
http:/example.com/example/index.php --------> example.com/index
www.example.com/example/index.php ----------> example.com/index
mydomain.com/example/index.php -------------> example.com/index

https://www.example.com/index.php ----------> example.com/index
https://example.com/index.php --------------> example.com/index
http://www.example.com/index.php -----------> example.com/index
http:/example.com/index.php ----------------> example.com/index
www.example.com/index.php ------------------> example.com/index
mydomain.com/index.php ---------------------> example.com/index

https://www.example.com/index --------------> example.com/index
https://example.com/index ------------------> example.com/index
http://www.example.com/index ---------------> example.com/index
http://example.com/index -------------------> example.com/index
www.example.com/index ----------------------> example.com/index
example.com/index --------------------------> example.com/index

Я просто нашел this, , поэтому я начну читать сразу после обеда.

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

Мой прогресс до сих пор

RewriteCond %{REQUEST_URI} ^/login$
RewriteRule ^login /index.php [NC]

RewriteCond %{REQUEST_URI} ^/dashboard$
RewriteRule ^dashboard /dashboard.php [NC]

RewriteCond %{REQUEST_URI} ^/logout$
RewriteRule ^logout /includes/destroy.php [NC]

RewriteCond %{HTTP_HOST} ^www\.birddogdata\.com$
RewriteRule ^(.*)$ https://birddogdata.com [R=301]

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Единственная проблема, которую мне еще предстоит выяснить, это как заставить example.com перенаправить на example.com/login.

Любая помощь будет признательна.

...