8

我正在四处寻找重复项,但我很难找到我认为应该是一个简单的答案。

.php在没有扩展的情况下添加任何内容的重写规则是什么?

例子:

www.website.com/styles.css -> www.website.com/styles.css

www.website.com/login -> www.website.com/login.php

谢谢!

4

2 回答 2

12

以下可能适合您的需求:

RewriteEngine On
RewriteBase /

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

这将自动将 .php 扩展名添加到没有扩展名的文件名中。它可能会尝试将something.css 重命名为something.css.php,但只有在something.css.php 存在时才会这样做。

于 2013-06-11T16:19:59.430 回答
4

要扩展@quinxorin 的答案,您还可以执行以下操作。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteCond %{REQUEST_FILENAME}\.php ^(.*)\.php(.*)$
RewriteRule .* %1.php?%2 [QSA]

这会将 url 的其余部分附加到结果中。即/page/1234变成/page.php?1234.

于 2013-10-17T09:50:36.647 回答