Я установил субдомен m.localhost с помощью vhost. m.locahost указывает на htdocs/m/папку
Я хочу, чтобы m.localhost/page
и m.localhost/page.php
работали и отображались как m.localhost/page
. На моем производственном сайте у меня есть что-то подобное в моем файле.htaccess, и он работает нормально:
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{HTTP_HOST} ^m\.mysite\.com$ [NC]
RewriteRule ^((?!m/).*)$ m/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
Я использую подобный метод на localhost, но он не работает. Меня направили на локальный хост (не м.). Но если я удалю файлы.htaccess, файлы.php работают нормально.
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php[\s?] [NC]
RewriteRule ^ /%1%2 [R=302,L,NE]
RewriteCond %{HTTP_HOST} ^m\.localhost$ [NC]
RewriteRule ^((?!m/).*)$ m/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
Как я могу заставить его вести себя так же, как мой сайт? Большое спасибо!
Я, наконец, добавил AllowOverride All
в настройки AllowOverride All
, после этого все прошло хорошо.
<VirtualHost *:80>
ServerName m.localhost
DocumentRoot "C:/xampp/htdocs/m/"
<Directory "C:/xampp/htdocs/m">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>