#.htaccess
#.htaccess
Вопрос:
Я пытаюсь переписать ссылки с помощью файла .htaccess. Базовый материал, но по какой-то причине он не работает. Мне нужно, чтобы имя файла перед .php было последним словом в URL. Чего мне здесь не хватает?
RewriteRule ^/product/(.*)$ /incl/static/products/$1.php [NC,L]
Комментарии:
1. Ваше регулярное выражение захватывает все до конца URL-адреса, поэтому
/product/this/that/something.php?blah=blah
будет равно 1 долларуthis/that/something.php?blah=blah
.2. Подождите, я сделал это в обратном направлении? Как мне поставить 1 доллар после /product/ ?
3. Вам понадобится что-то вроде
RewriteRule ^/product/(.*).php(.*)$
, чтобы записать как имя скрипта ($ 1), так И строку запроса ($ 2) отдельно. В противном случае вы просто превратитесь в/product/test.php
/incl/static/products/test.php.php
4. Мне не нужно расширение файла. /incl/static/products/item.php должен стать / продуктом/ товаром
5. Какой URL-адрес вы используете для проверки этого?
Ответ №1:
как Marc
уже было сказано, вам нужно что-то, чтобы различать имя файла сценария и другие части:
RewriteRule ^products/script/(.*)/(.*)$ $1.php?$2amp;%{QUERY_STRING}
Но если после first (.*) есть строка запроса, поэтому используйте ее:
RewriteRule ^products/script/(.*)$ $1.php?%{QUERY_STRING}