我想知道是否可以在不指定参数的情况下处理URL。例如:
http://www.example.com/Sometext_I_want_to_process
我不想使用:http://www.example.com/index.php?text=Sometext_I_want_to_process
网站必须在处理后重定向到其他网页。
我有什么语言选择?
答案 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/152
到www.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
”,但这应该可以帮助您更接近解决方案; - )