#.htaccess #redirect #mod-rewrite #url-rewriting #friendly-url
Вопрос:
Как я могу сделать следующее на локальном хосте, который будет размещен позже в Интернете:
У меня есть эта ссылка:
http://localhost/shops/shop.php?c=15
Я хочу переписать его на http://localhost/shops/shop/15
htaccess есть(который помещен в C:wampwwwshops folder
):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?RECIPES/(.*?)/?$ /single-product-details.php?=$1 [L]
RewriteRule ^/?SHOP/(.*?)/?$ /shop.php?=$1 [L]
Комментарии:
1. Пожалуйста, поделитесь своим файлом правил htaccess в своем вопросе, спасибо.
2. Перезаписать На RewriteCond %{REQUEST_FILENAME} ! -f перезаписать секунду %{ИМЯ ФАЙЛА ЗАПРОСА} ! -d переписать ^/?РЕЦЕПТЫ/(.*?)/?$ /single-product-details.php?=$1 [L] Рерайтер ^/?МАГАЗИН/(.*?)/?$ /shop.php?=1 доллар [Л]
Ответ №1:
С показанными вами образцами, пожалуйста, попробуйте следовать Правилам. Поместите свой файл htaccess вместе с папкой «Магазины» (не внутри нее).
Пожалуйста, не забудьте очистить кэш вашего браузера перед тестированием ваших URL-адресов.
RewriteEngine ON
RewriteBase /shops/
##External redirect to friendly url.
RewriteCond %{THE_REQUEST} s/shops/(shop).php?c=(d )s [NC]
RewriteRule ^ /%1/%2? [R=301,L]
##Internal rewrite to actual url/files.
RewriteRule ^([^/]*)/(.*)/? $1.php?c=$2 [QSA,L]
Комментарии:
1. Это не сработало, по-прежнему отображается: localhost/iCook/shop.php?c=5
2. его включили с apache для перезаписи, я также очистил кэш
3. @AliElMenini, на какой URL вы нажимаете?
4. @AliElMenini, хорошо, значит, вы хотите перенаправить с
localhost/shops/shop.php?c=7
НАlocalhost/shops/shop
в браузере? Пожалуйста, подтвердите один раз.5. Я хочу, чтобы localhost/магазины/shop.php?c=7 был похож на localhost/магазины/магазин/7