Используйте .htaccess, чтобы переписать адрес с xxx.example.com на example.com/xxx/ - PullRequest
0 голосов
/ 08 мая 2018

Я ищу способ, с помощью которого пользователи могут получить доступ к своей странице, набрав xxx.example.com, а затем перенаправить на свой пост в WordPress.

Теперь у меня уже есть две функции перезаписи на моем сайте: (не написано мной)

Чтобы использовать https везде:

 #Rewrite everything to https
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

И WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

Теперь эта функция WordPress переводит example.com/post_title в соответствующий пост.

Но как мне переписать его, чтобы оно перевело post_title.example.com в соответствующий пост?

И, если возможно, по-прежнему отображается xxx.example.com вместо example.com/xxx

1 Ответ

0 голосов
/ 08 мая 2018

Должно работать следующее, измените .htaccess на:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Rewrite to https
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=302]

# This rewrite rule will only be used if
# we have an empty query string and the http host does not start with www
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{HTTP_HOST} !^www\.example\.com
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^$ http://%{HTTP_HOST}/%1 [L]

# The default wordpress rewrite rule
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Чтобы это работало, я думаю, вам нужно настроить правильную структуру постоянных ссылок в вашей установке WordPress:

enter image description here

...