【问题标题】:remove .php with .htaccess用 .htaccess 删除 .php
【发布时间】:2016-04-28 20:42:22
【问题描述】:

我正在我的站点var/www/mysite/ 的路径中创建一个 .htaccess 文件来删除我的文件“.php”,但它不起作用

# Apache Rewrite Rules
 <IfModule mod_rewrite.c>
 Options +FollowSymLinks
 RewriteEngine On
 RewriteBase /

# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]

# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php 

# End of Apache Rewrite Rules
</IfModule>

这是我第一次这样做,如果我做得不好,或者这是否在正确的地方,所以我来找你。

【问题讨论】:

  • 检查重写日志。在无条件始终附加斜杠后,RewriteCond /input/path/.php -f 将永远不会匹配。
  • @anubhava 比如我有about.php,重定向about但是找不到。,但是如果我重定向到about.php就可以了。
  • www.mysite.com/about 失败了,但是 www.mysite.com/about.php 它的作品! @anubhava
  • 不,它对我不起作用,我 .htaccess 但我仍然可以看到我的其他页面。

标签: php apache .htaccess


【解决方案1】:

在站点根目录 .htaccess 中尝试此代码:

Options +FollowSymLinks
RewriteEngine On

# Add trailing slash to url that is not a file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*?[^/])$ %{REQUEST_URI}/ [L,R=302,NE]

# Add .php extension from urls internally
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php 

【讨论】:

  • 我刚刚设置了我的 ubuntu 服务器,但我认为我没有正确配置 Apache,因为如果他们在我拥有的另一台服务器上工作,你给我的 htaccess,但让我发疯,哈哈 conf apache
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-18
  • 1970-01-01
  • 1970-01-01
  • 2013-05-09
  • 2011-04-30
  • 2013-04-01
相关资源
最近更新 更多