我在这里可以使用一些帮助。 我用这个来解决我的网址,但我无法弄清楚如何删除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);
}
}
有任何想法吗?
/托比亚斯
如果你通过Apache服务,你想看看mod_rewrite
。
使用mod_rewrite
,你可以修改的URL是如何映射到应用程序的实际终点。 对于你的榜样,你会想是这样的:
RewriteEngine on
RewriteRule ^/?page/(.*)$ page.php/$1 [L]
此页面有其他一些简单的例子。
你可能配置你的服务器,让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指令覆盖以前的任何处理程序设置。
在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
玩得开心。
谢谢所有的答案,但如果我使用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