Я пытаюсь создать для пользователей способ ввода 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>