.htaccess RewriteRule дублирующая строка запроса - PullRequest
1 голос
/ 09 марта 2019

Я нашел несколько тем, связанных с моей проблемой, на stackoverflow.com , но пока не нашел решения.

Это мой .htaccess код:

RewriteEngine On
RewriteRule ^library-(.*)\.aspx$ index.php?page=library&image=$1 [NC,L,QSA]
RewriteRule ^information-(.*)\.aspx$ index.php?page=information&text=$1[NC,L,QSA]

Отлично, новое форматирование URL работает:

https://example.com/library-image5000.aspx или же https://example.com/information-sometext.aspx

Но кто-нибудь может сказать мне , почему URL принимает обе строки запроса?

https://example.com/library-image5000.aspx/information-sometext.aspx

1 Ответ

1 голос
/ 09 марта 2019

Это потому, что ваш шаблон регулярного выражения ^library-(.*)\.aspx$ также соответствует URI /library-image5000.aspx/information-sometext.aspx.

. Вы можете использовать ограниченный шаблон вместо универсального (.*).Используйте ([^/]+), поскольку оно совпадает с любыми символами, кроме /.

RewriteEngine On
RewriteRule ^library-([^/]+)\.aspx$ index.php?page=library&image=$1 [NC,L,QSA]
RewriteRule ^information-([^/]+)\.aspx$ index.php?page=information&text=$1[NC,L,QSA]
...