使用php删除.php扩展名

使用php删除.php扩展名,php,clean-urls,Php,Clean Urls,我需要一些帮助。我用它来修复我的URL,但我不知道如何删除.php扩展名。URL现在如下所示: 有什么想法吗 /Tobias如果您是通过Apache提供服务的,那么您需要查看 使用mod_rewrite,您可以修改URL映射到应用程序实际端点的方式。对于您的示例,您需要以下内容: RewriteEngine on RewriteRule ^/?page/(.*)$ page.php/$1 [L] 还有一些简单的例子。您可能将Web服务器配置为让php处理所有扩展名为.php的文件请求。让我们

我需要一些帮助。我用它来修复我的URL,但我不知道如何删除.php扩展名。URL现在如下所示:

有什么想法吗


/Tobias

如果您是通过Apache提供服务的,那么您需要查看

使用
mod_rewrite
,您可以修改URL映射到应用程序实际端点的方式。对于您的示例,您需要以下内容:

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

还有一些简单的例子。

您可能将Web服务器配置为让php处理所有扩展名为.php的文件请求。让我们假设它是apache。然后有点像

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


apache会将任何文件视为php脚本。覆盖任何以前的处理程序设置。

在Apache下,将.htaccess文件放在包含page.php文件的目录中

如果page.php文件包含在根目录(ie/page.php)中,则只需将其添加到.htaccess中:

RewriteEngine On
RewriteBase /

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

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /a_folder/another_folder/page.php?/$1 [L]
但是,如果page.php文件包含在/a_folder/other_folder/page.php中

然后,您需要将其放入.htaccess:

RewriteEngine On
RewriteBase /

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

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

这只是简单地从URL中删除page.php。因此,在你的情况下:

而不是: 您可以使用:htp://mydomain.com/foo/123/bar/456


祝你玩得开心。

谢谢你提供的所有答案,但如果我使用mod_rewrite,那么每次创建新页面时,我都必须制定新规则(以及许多规则)。其中有很多:)

如果我用.htaccess将所有URL重定向到我的index.php,然后在那里修复我的URL,比如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
#开始WordPress
重新启动发动机
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

您正在尝试创建所谓的“漂亮URL”,之前已经讨论过了。应该有你想要的东西。你不能单独使用PHP来实现这一点,你需要深入研究Apache模块mod_重写。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress