Перезапись мода (htaccess) на переменной get не работает - PullRequest
0 голосов
/ 18 января 2012

Я тестирую переписывание модов для своего сайта.Я думал, что попробую простой код, но он не работает.У меня есть файл .htaccess в моей корневой директории (localhost).В localhost у меня есть страница с названием profile.php.Profile.php может взять переменную get p из моей базы данных.Похоже, что localhost/profile.php?p=3, где 3 - это уникальный идентификатор.Когда я захожу в localhost / profile.php? P = 3, это работает, но когда я захожу в localhost / 3, это не так.Я получаю 404 не найдено.

.HTACCESS файл:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]
RewriteRule ^(.*)$ http://localhost/profile.php?p=$1 [NC]

РЕДАКТИРОВАТЬ:

httpd.conf (в настоящее время):

<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>

1 Ответ

0 голосов
/ 18 января 2012

Попробуйте добавить следующее в ваш файл htaccess в корневом каталоге вашего сайта

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

#assume that p is only numeric
RewriteRule ^([0-9]+)$ profile.php?p=$1 [L,NC]

Редактировать:

Проверьте ваш httpd.conf, чтобы убедиться, что для AllowOverride установлено всекак ниже.Если установлено значение none, то .htaccess не будет работать

<Directory />
Options FollowSymLinks
AllowOverride All
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...