【问题标题】:Display default file but not the extension显示默认文件但不显示扩展名
【发布时间】:2015-01-20 06:33:01
【问题描述】:

我找遍了这个地方,但找不到具体的解决方案......

基本上,我有类似以下的内容:

www.thename.co/mpany

我创建了一个名为 mpany.php 的页面并将其设置为我的默认页面,我还在 htaccess 中添加了一条规则,以便不会显示 php 文件扩展名。

我的问题是,当您输入www.thename.co 时,即使它加载了mpany.php,它也只会在浏览器的地址栏中显示基本网址:www.thename.co,而我希望它显示:www.thename.co/mpany

这是我的.htaccess 文件:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]
DirectoryIndex mpany.php

任何指针?

【问题讨论】:

  • RewriteRule ^$ mpany [R=301,L] 应该可以解决问题。将其放在您现有的 RewriteCond 之前。
  • 感谢@CBroe,但这不起作用,因为它会查找名为mpany的目录...
  • 这与用户一开始直接输入www.thename.co/mpany 有什么不同?我认为您添加 .php 扩展名的规则应该解决这个问题?
  • 对不起,伙计,也许我把你弄糊涂了...我希望当用户输入www.thename.co时,它实际上会将他们带到www.thename.co\mpany,但也会在地址栏中准确显示。
  • 是的,我明白你想要什么。我建议的规则不能做到这一点吗?然后请描述发生了什么。

标签: .htaccess url


【解决方案1】:

您可以在根 .htaccess 中使用这些规则:

DirectoryIndex mpany.php
Options -MultiViews
RewriteEngine On
RewriteRule ^$ /mpany/ [L,R]

# To internally forward /dir/file to /dir/file.php
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]

【讨论】:

  • 嘿@anubhava,这行RewriteRule ^$ /mpany/ [L,R] 应该有第二个正斜杠吗?
  • 实际上,回答我自己的问题,当我删除第二个斜线时,它给了我想要的结果!伙计,非常感谢!
猜你喜欢
  • 2021-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-01-13
  • 2011-07-08
  • 2016-12-06
  • 2011-08-14
  • 1970-01-01
相关资源
最近更新 更多