【问题标题】:How to allow extensionless url for subdomains on localhost?如何允许本地主机上子域的无扩展名 url?
【发布时间】:2015-02-25 11:47:18
【问题描述】:

我已经使用 vhost 设置了子域 m.localhost。 m.locahost 指向 htdocs/m/ 文件夹

我希望 m.localhost/pagem.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


    【解决方案1】:

    我终于在虚拟主机设置中添加了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>
    

    【讨论】:

      猜你喜欢
      • 2013-12-24
      • 2020-04-30
      • 2021-07-12
      • 2011-11-12
      • 1970-01-01
      • 2018-04-02
      • 2016-07-30
      • 1970-01-01
      • 2016-07-25
      相关资源
      最近更新 更多