【问题标题】:Removing .php extension in localhost删除本地主机中的 .php 扩展名
【发布时间】:2014-06-29 09:50:03
【问题描述】:

我一直在试图弄清楚如何删除 .php 扩展名,我到处搜索,似乎大部分代码都不再工作了。下面的代码是我现在用来删除 .php 扩展名的代码,但它不起作用。

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

【问题讨论】:

  • 您的第二行说“仅在文件不存在时执行以下操作”。
  • 你把上面的代码放在哪里了?
  • 在什么之上?这是我在 .htaccess 中的全部代码
  • 这个 .htaccess 代码可以完美运行stackoverflow.com/questions/29628001/…

标签: php url-rewriting url-rewrite-module


【解决方案1】:

从 PHP 文件中删除 .php 扩展名

例如 yoursite.com/wallpaper.php 到 yoursite.com/wallpaper 你必须在 .htaccess 文件中添加以下代码:

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

或者

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

或者

见removing .php extension from URL

另外,请确保您已启用 mod_rewrite。

另见how to create .htacess file

【讨论】:

  • 还是不行,我得到一个错误“请求的 URL “localhost/series3/list”找不到或不可用。”
  • 确保您的 mod_rewrite 已开启。
  • 如何将其更改为开启?
  • 它仍然无法正常工作我收到以下错误“在此服务器上找不到请求的 URL。如果您手动输入了 URL,请检查您的拼写并重试。这是我的完整代码 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L] 如果您认为这是服务器错误,请联系站长。”
【解决方案2】:

我认为您还需要使用上面的 htaccess 代码更改内部网站编码,并从您的网络编码中提到的位置删除文件名 URL 扩展名。 例如:-

https://yoursite.com/page.html

改为

https://yoursite.com/page/

ht访问代码

RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^(.*)$ $1.html [NC,L]

【讨论】:

  • 欢迎来到 Stack Overflow :)
【解决方案3】:

我在 Windows 10 上使用 XAMPP。我也多次尝试删除 .php 扩展,但结果相同。但经过很长一段时间后,我终于明白了我们如何做到这一点。如果您想要相同的结果,只需按照下面给出的步骤...

从 PHP 文件中删除 .php 扩展名,例如如果您想将 mywebsite.com/about.php 更改为 mywebsite.com/about,您必须在 .htaccess 文件中添加以下代码:

首先,确保您已创建一个名为 .htaccess 的新文件,并将其放在您的 root-level/root-directory 中,您的 index 文件被放置。 现在,使用您选择的任何编辑器打开此 (.htaccess) 文件,复制/粘贴给定代码并保存...

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

现在,如果您(任何用户)在浏览器中访问 mywebsite.com/about,用户将看到 mywebsite.com/about.php 页面的内容。

但是,如果您(任何用户)以 mywebsite.com/about.php 身份访问该 URL,这不会将用户重定向到此 mywebsite.com/about 页面。但是会转到这个 mywebsite.com/about.php 页面,这意味着用户仍然可以访问 mywebsite.com/about.php 页面。别担心。如果您想避免这种情况,您只需执行下一步即可。

为避免上述问题,现在您需要在 .htaccess 文件中添加更多规则。为此,您必须用下面给出的新代码替换旧代码,保存文件并检查...

RewriteEngine On
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]

就是这样,一切就绪。 我希望这能解决每个人的问题。

祝你有美好的一天:)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 1970-01-01
  • 2020-08-11
  • 2020-03-19
  • 1970-01-01
  • 2011-03-17
相关资源
最近更新 更多