如何在不指定参数的情况下处理URL

时间:2009-09-14 20:44:01

标签: php url process parameters

我想知道是否可以在不指定参数的情况下处理URL。例如: http://www.example.com/Sometext_I_want_to_process

我不想使用:http://www.example.com/index.php?text=Sometext_I_want_to_process

网站必须在处理后重定向到其他网页。

我有什么语言选择?

2 个答案:

答案 0 :(得分:3)

我建议使用apache的mod_rewrite(在其他Web服务器上可以找到类似的功能)来重写URL,这样它就是一个参数。例如,使用您使用的text参数,您可以使用以下mod_rewrite规则来获取参数。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico # Want favicon.ico to work properly
RewriteRule ^(.*)$ index.php?text=$1 [L,QSA]

然后,您只需像往常一样访问脚本中的参数。

<?php     
$stuff = $_GET['text'];
// Process $stuff 

答案 1 :(得分:0)

你可以使用Apache的mod_rewrite来做这种事情。
显然,这意味着必须启用它 - 默认情况下往往不是这种情况。

例如,在网站上,我在.htaccess文件中使用它:

RewriteEngine on
RewriteCond %{REQUEST_URI}  !^/index.php
RewriteRule ^(.*)$ /index.php?hash=$1   [L]

这会重定向所有内容,例如www.mysite.com/152www.mysite.com/index.php?hash=152

然后,在我的PHP代码中,我可以使用$_GET

if (isset($_GET['hash'])) {
    if (is_numeric($_GET['hash'])) {
        // Use intval($_GET['hash']) -- I except an integer, in this application
    }
}

在您的情况下,您可能希望将“hash”替换为“text”,但这应该可以帮助您更接近解决方案; - )