RewriteRule для перенаправления example.com/12345 на https://example.com/index.html?id=12345 - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь создать для пользователей способ ввода URL-адреса в качестве example.com/12345 и переписать его как https://www.example.com/index.html?id=12345. Параметр "id" должен содержать не менее 6 цифр и не должен иметь максимум.Кажется, я не могу заставить первый RewriteRule работать правильно.Когда пользователь вводит URL-адрес, например www.example.com/12345, он перенаправляется на https://www./12345.

Второй RewriteRule перенаправляет весь другой трафик на https://www.example.com без проблем.

<VirtualHost *:80>
    <Directory /var/www/vhosts/example/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ServerAdmin admin@example.com
    ServerName example.com
    ServerAlias www.example.com
    DocumentRoot /var/www/vhosts/example/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    RewriteEngine On
    RewriteCond %{HTTPS} off [OR]
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteRule ^([0-9]{6,})$ https://www.example.com/index.html?id=$1 
        [QSA,L,R=301,NE]
    RewriteRule ^ https://www.%1%{REQUEST_URI} [L,NE,R=301]
</VirtualHost>
...