删除PHP扩展与PHP(Remove .php extension with PHP)

2019-06-21 04:12发布

我在这里可以使用一些帮助。 我用这个来解决我的网址,但我无法弄清楚如何删除PHP扩展。 该URL现在看起来是这样的: http://mydomain.com/page.php/foo/123/bar/456

function decode_URL_parameters() {
   $path = @$_SERVER['PATH_INFO'];
   $url_array=explode('/',$path);

   array_shift($url_array);

   while ($url_array) {
      $_GET[$url_array[0]] = $url_array[1];
      array_shift($url_array);
      array_shift($url_array);
   }
}

有任何想法吗?

/托比亚斯

Answer 1:

如果你通过Apache服务,你想看看mod_rewrite

使用mod_rewrite ,你可以修改的URL是如何映射到应用程序的实际终点。 对于你的榜样,你会想是这样的:

RewriteEngine on 
RewriteRule ^/?page/(.*)$ page.php/$1 [L]

此页面有其他一些简单的例子。



Answer 2:

你可能配置你的服务器,让PHP办理具有.php扩展名的文件的所有请求。 让我们假设它是一个Apache。 此外,还有像

AddType application/x-httpd-php .php .php5 .php4 .php3 .phtml .phpt

要么

<FilesMatch \.php$>
  SetHandler application/x-httpd-php
</FilesMatch>

在配置文件中的一个。 第二个告诉apache的那场比赛.PHP $应该由注册的类型application / x-httpd的-PHP(PHP)模块/处理器处理面具的所有文件。
但是你没有限制它.php文件。 你可以使用任何你想要的文件掩码。 或其他指令例如像<目录> 。
如果在一个特定的目录中的所有文件(也许它的子目录)是PHP脚本,你甚至可以把一个.htaccess文件在目录中

ForceType application/x-httpd-php

和Apache会将任何文件作为PHP脚本。 ForceType指令覆盖以前的任何处理程序设置。



Answer 3:

在Apache,把.htaccess文件,其中包含page.php文件文件的目录。

如果page.php文件文件包含在根目录(即/page.php),则只需在您的.htaccess补充一点:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /page.php?/$1 [L]

但是,如果page.php文件文件包含在可以说/a_folder/another_folder/page.php

然后,你将需要把这个变成你的.htaccess:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /a_folder/another_folder/page.php?/$1 [L]

等等。

这是什么,它只是从URL中移除page.php文件。 所以你的情况:

相反的: http://mydomain.com/page.php/foo/123/bar/456您可以使用:HTP://mydomain.com/foo/123/bar/456

玩得开心。



Answer 4:

谢谢所有的答案,但如果我使用mod_rewrite然后我哈夫特作出新的规则(很多)每次我创建一个新的页面。 还有就是他们中的很多:)

也许,如果我重定向所有的URL到我的index.php .htaccess的,然后修复我的网址在那里,像WordPress:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress


文章来源: Remove .php extension with PHP