如何允许本地主机上的子域使用无扩展名 url?
How to allow extensionless url for subdomains on localhost?
我已经用 vhost 设置了子域 m.localhost。 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/ [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
我在本地主机上使用了类似的技术,但它不起作用。我被定向到本地主机(不是 m.)。但是如果我删除 .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/ [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
如何才能使它的行为与我的生产站点相似?非常感谢!
我终于在 vhost 设置中添加了 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>
我已经用 vhost 设置了子域 m.localhost。 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/ [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
我在本地主机上使用了类似的技术,但它不起作用。我被定向到本地主机(不是 m.)。但是如果我删除 .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/ [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/\.php -f [NC]
RewriteRule ^(.+?)/?$ /.php [L]
如何才能使它的行为与我的生产站点相似?非常感谢!
我终于在 vhost 设置中添加了 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>