【问题标题】:My htaccess file works but is not rewriting我的 htaccess 文件有效但没有重写
【发布时间】:2016-08-11 12:32:10
【问题描述】:

我正在 Xampp for Windows(Windows 10、x64)上运行一个本地网站,一旦准备好,我将上传到我的服务器上。

我正在尝试使用以下代码从 URL 中隐藏 .php 扩展名:

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

我对 htaccess 文件一无所知,所以如果有错误请更正此代码。

我知道 .htaccess 文件正在工作,因为我在上面放了垃圾,网站停止工作。我也知道我不需要 .htaccess 文件,因为我可以访问主服务器配置,但不知道将代码放在哪里。

我在 httpd.conf 上有这个

<Directory />
    Options FollowSymLinks Indexes MultiViews
    AllowOverride all
    Require all denied
</Directory>

和

<Directory "C:/xampp/cgi-bin">
    AllowOverride All
    Options Indexes FollowSymLinks MultiViews ExecCGI
    Require all granted
</Directory>

我想要的只是我的结构看起来像:www.mysite.com/products 而不是 www.mysite.com/products.php

【问题讨论】:

  • 您是否将 .htaccess 文件放在文档根目录中,即 www.mysite.com

标签: php html apache .htaccess mod-rewrite


【解决方案1】:

如果您的 htaccess 正常工作,则将此代码放入其中。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]

【讨论】:

  • 把这个 htaccess 放在你想删除 .php 扩展名的目录中,在单独的测试项目上试试这个,然后告诉我错误是什么。
  • 它已经在我要删除 .php 扩展名的目录中;没有显示错误,但不会删除扩展
  • 您正在像这样访问您的文件www.mysite.com/products?并撤消您在 httpd.conf 上所做的任何其他更新。
  • 当我通过www.mysite.com/products 访问时它可以工作,但当我通过www.mysite.com/products.php 访问时它也可以工作。无论如何不允许这样做?
  • 另外,如果我在尝试访问 www.mysite.com/products.php 时可以将某人重定向到 www.mysite.com/products 会更好
猜你喜欢
  • 2017-05-08
  • 2015-05-18
  • 1970-01-01
  • 2011-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-23
  • 2015-05-14
相关资源
最近更新 更多