Я запускаю XAMPP для Windows 5.6.11. У меня есть следующий файл PHP:
C:\xampp\htdocs\www.johndoe.com\index.php
к которому я обращаюсь
http://localhost/www.johndoe.com/
На самом деле мне нужно получить доступ к следующей странице:
http://localhost/www.johndoe.com/?value=about
как одно из следующих двух:
http://localhost/www.johndoe.com/about/ http://localhost/www.johndoe.com/about
поэтому в моем файле .htaccess есть следующее:
RewriteEngine on RewriteRule ^www\.johndoe\.com/about/?$ www.johndoe.com/?value=about
Однако это не работает, так как доступ к прежним сайтам дает мне 401 (не найден).
Вот что я имею в C:\xampp\apache\conf\httpd.conf
:
<Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "C:/xampp/htdocs" <Directory "C:/xampp/htdocs"> Options Indexes FollowSymLinks Includes ExecCGI AllowOverride All Require all granted </Directory>
Что я должен сделать, чтобы файл .htaccess
был разобран и выполнил замену, в которой я нуждаюсь?
Я попытался поставить следующее в C:\xampp\apache\conf\httpd.conf
:
<Directory /> AllowOverride all Require all allowed </Directory>
но им не повезло. Я даже попытался изменить файл .htaccess
на следующее:
RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteBase /www.johndoe.com/ RewriteRule ^about/?$ ?value=about
но я все еще получаю сообщение об ошибке 404.
Как оказалось, при конфигурации XAMPP по умолчанию нет необходимости в C:\xampp\apache\conf\httpd.conf
, поэтому нет необходимости перезапускать Apache, поскольку мы просто вносим изменения в C:\xampp\htdocs\www.johndoe.com\.htaccess
. Как объясняет этот пост в RewriteBase , нам не нужен RewriteBase
поскольку мы не будем использовать абсолютные пути в целевых ссылках для правил .htaccess
. Поскольку относительные ссылки в этих правилах назначения будут относиться к каталогу, который мы обслуживаем, нам нужно удалить каталог www.johndoe.com
из правила:
.htaccess
в “ C: \ xampp \ htdocs \ http://www.johndoe.com`. Поместите в нее следующий референс:
RewriteEngine on RewriteRule ^about/?$ index.php?value=about