2014-12-28 32 views
1

如果我有一个名为“dir”的目录,名为“index.php”,是否可以在URL中处理一个字符串,而不需要在url中专门定义任何变量?

例如,如果用户类型http://domain.com/dir/hello.world

是否有可能从dir/index.php处理'hello.world'而不假定它是不存在的文件?

我假设这是一个htaccess的事情,我知道如何使变量隐藏在一个URL与htaccess(所以像/index.php?var=something变成/var/something),但我不知道如何去做这件事,所以它变成只是/something

回答

2

您正在寻找实施通常被称为“漂亮的网址”的东西。

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^.*$ ./index.php 

然后你就可以拉你出来的参数的请求的URI:

$_SERVER['REQUEST_URI']; 
+0

通过强制不在文件或目录到你的.htaccess在index.php所有请求做我会接受你的回答,因为它很好。尽管我改变的一点是使用这些规则:'RewriteRule ^(。*)/?$ index.php?var = $ 1 [L,NC,QSA]''和'RewriteRule ^(。*)$ $ 1.php [L] '所以一切都传递给'var'变量。尽管当有多个变量被传递时,你的解决方案会更好。 – Sakuya