我正在四处寻找重复项目,但我无法找到我认为应该是一个简单的答案。htaccess添加.php到没有扩展名的所有东西
什么是将.php
添加到没有扩展名的任何重写规则?
例子:
www.website.com/styles.css - > www.website.com/styles.css
www.website.com/login - > www.website.com/login .php
谢谢!
我正在四处寻找重复项目,但我无法找到我认为应该是一个简单的答案。htaccess添加.php到没有扩展名的所有东西
什么是将.php
添加到没有扩展名的任何重写规则?
例子:
www.website.com/styles.css - > www.website.com/styles.css
www.website.com/login - > www.website.com/login .php
谢谢!
下可满足您的需求:
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时才会这样做。
要通过@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
。
在什么情况下你想这样做?这些链接是否在文件中?他们是否在动态生成的网页中? – IanPudney
没有什么奇特的。我网站上的所有网页都是php脚本,我只想使用漂亮的网址。我现在对我的网站上的每一个页面都有一个规则,因为我不知道简单的方法:对于每一个我拥有的页面,都有'RewriteRule^login $ login.php [L]'...我希望用户能够键入/登录并获得完整的login.php页面 – pinhead