У меня есть этот htaccess
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.test\.com$ [NC]
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L]
RewriteRule ^home.html$ index__.php [L]
RewriteRule ^prodotti.html$ prodotti.php [L]
RewriteRule ^azienda.html$ azienda.php [L]
RewriteRule ^news.html$ news.php [L]
RewriteRule ^outlet.html$ outlet.php [L]
RewriteRule ^contatti.html$ contatti.php [L]
RewriteRule ^news-(.*).html$ news.php?id=$1 [L]
RewriteRule ^arr.html$ prodotti-cat.php?cat=a [L]
RewriteRule ^sed.html$ prodotti-cat.php?cat=s [L]
RewriteRule ^par.html$ prodotti-cat.php?cat=p [L]
RewriteRule ^cont.html$ prodotti-cat.php?cat=c [L]
RewriteRule ^comp.html$ prodotti-cat.php?cat=co [L]
RewriteRule ^outlet/([a-zA-Z0-9_-]+).html$ outlet-dett.php?prd=$1 [L]
RewriteRule ^(.*)/(.*)/$ prodotti-cat.php?cat=$1&f=$2 [L]
RewriteRule ^(.*)/(.*).html$ prodotti-dett.php?cat=$1&prd=$2 [L]
Если я напишу в своем браузере http://www.test.it/outlet/test-2 .html я получаю НЕ НАЙДЕН... Почему??? Помощь!!!
1 ответ
http://www.test.it/outlet/test-2.html
будет переведено в
http://www.test.it/outlet-dett.php?prd=test-2
Проверьте, существует ли этот файл.
Все, что следует за символом ?
и включает его, называется строкой запроса. Вот как это делается:
- Сервер загружает
outlet-dett.php
- и передает ему переменную с именем
prd
со значениемtest-2
. - затем PHP-скрипт в
outlet-dett.php
отображает данные в зависимости от значенияprd
.
$1
в вашем правиле перезаписи называется обратной ссылкой. Он ссылается на совпадение между первой скобкой в вашем регулярном выражении.
outlet-dett.php
в вашем каталоге, либо http://www.test.it/outlet-dett.php?prd=test-2
должен дать вам ответ. - Третье решение состоит в том, что ваш скрипт PHP отвечает 404 (не найден), потому что в вашей базе данных нет продукта с названием test-2
.
RewriteLog path/to/logfile
и установите уровень с помощью RewriteLogLevel 2
. Если вы не найдете ответ, вы можете перейти на более высокий уровень журнала.
Похожие вопросы
Новые вопросы
.htaccess
Файл конфигурации уровня каталогов, используемый веб-серверами Apache. Используйте этот тег, если и только если содержимое .htaccess непосредственно участвует в теме. Мы знаем, что многие люди используют .htaccess, но просить членов сообщества не использовать этот тег, если вы не знаете, что это на вашем вопросе. Также обратите внимание, что тег «Apache» должен сказать о вопросах о _configurguiting_ Apache httpd и их потенциал Offictyness на StackoverFlow