【发布时间】:2015-02-25 11:47:18
【问题描述】:
我已经使用 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/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
我在 localhost 上使用了类似的技术,但它不起作用。我被定向到本地主机(不是 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/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]
如何使它的行为与我的生产站点相似?非常感谢!
【问题讨论】:
标签: php apache .htaccess url-rewriting localhost