Несколько правил перезаписи htaccess, не работающих в XAMPP - PullRequest
0 голосов
/ 10 июня 2018

У меня в настоящее время есть 2 правила:

Первое заменит "domain.com/profile/user" на "domain.com/profile.php?user=user"

Второе правилоудаляет .php из всех файлов, чтобы к ним можно было обращаться без необходимости .php.

Вот файл .htaccess:

RewriteEngine On

RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

В его текущем состояниипервое правило работает, а второе не работает.

Тем не менее, если я добавлю «Опции + MultiViews» в верхней части, чтобы это было:

Options +MultiViews
RewriteEngine On

RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

Тогда первое правило не работаетв то время как второй работает?

Я просто не могу понять, как заставить их обоих работать.

Обратите внимание, я использую vhost XAMPP для веб-сервера и изменил соответствующие настройкиразрешить htaccess работать с XAMPP.

1 Ответ

0 голосов
/ 11 июня 2018

Хорошо, я нашел решение, не самое лучшее, но оно работает.

Я просто изменил мой .php для удаления на другую версию, которая выполняет ту же задачу.

Я незнаю, почему это работает, а другая версия - нет.Если вы знаете, почему оригинальный не работает, пожалуйста, дайте мне знать.

Вот рабочая версия:

RewriteEngine On


RewriteBase /
RewriteRule ^profile/([^/]+)$ profile.php?user=$1 [L,QSA]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

Источник: https://www.digitalocean.com/community/questions/how-to-hide-php-extension-in-url-using-htaccess

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...