#php #regex #apache #.htaccess #mod-rewrite
#php #регулярное выражение #apache #.htaccess #мод-переписать
Вопрос:
У меня есть know more
кнопка на моем веб-сайте, и когда я нажимаю на know more
кнопку, мне нужно перенаправить на product.php
страницу. Ниже приведен код, который я использую, и он работает.
<a href="product">Know More</a>
Теперь мне нужно переписать URL с http://example.com/product.php
на
http://example.com/products/products2/products3/products
Я попробовал приведенный ниже код
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.] )$ $1.php [NC,L]
RewriteRule ^products/products2/products3/products$ product.php [L]
но это не работает. Не могли бы вы помочь мне с правилами перезаписи?
Я тоже пробовал это
RewriteRule ^products/products2/products3/products product.php
Комментарии:
1.
^
Символ означает, что что-то начинается с вышеупомянутого шаблона. Я не эксперт в правилах перезаписи, но вы пробовалиRewriteRule ^/products product.php
?2. @NotAnerd, я протестировал ваше правило здесь, но оно не работает. Я получаю сообщение об ошибке «Ой, похоже, страница потеряна». Я использую хостинг hostinger.
3.
href="product"
? это даже не при перезаписи4. ^^^ Это правда, так и было бы
product.php
. Возможно, именно поэтому ваша страница потеряна .5. @LawrenceCherone, но я использовал некоторый код htaccess, чтобы удалить php из URL.
Ответ №1:
Пусть будет так:
RewriteEngine On
# match specific URI
RewriteRule ^products/products2/products3/products/?$ product.php [L,NC]
# php estension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(. ?)/?$ $1.php [L]
Обратите внимание на измененный порядок ваших правил и проверку наличия .php
файла перед добавлением .php
перед URI.
Комментарии:
1. сэр, дайте мне время, чтобы проверить ваш ответ.
2. Да, после добавления вашего ответа в htaccess я использовал прямой URL example.com/products/products2/products3/products и это работает.
3. Мне нужно знать, откуда вы изучаете правила htacces? Я должен понять ответ. Я получал проблему за последние 10 дней, и вы решили ее в течение 5 минут. Оцените вашу помощь.
4. Также мне нужно знать, я должен использовать <a href=»product»>Подробнее</a> или <a href=»products/products2/products3/products»>Подробнее</a> на моей веб-странице?
5. Вы можете использовать любую из этих 2
href
ссылок на своей веб-странице в соответствии с вашими требованиями. Оба будут обслуживатьсяproduct.php
файлом. Я узнал о переписывании правил и т. Д. Из старых ответов на сайтах Stackexchange.