2012-02-14 35 views
2

我使用URL中的目录作为PHP变量之后的一种方式。类似于Wordpress(如果不是所有的博客平台),我想要一种方法,比如将domain.com/directory传递到一个php文件中。在url中使用目录作为php变量

这样做的原因是这样,当我创建自己的博客的事情,这些网址将是搜索引擎友好。

Forexample,而不是

domain.com/?blog=1&foo=1&bar=1&foobar=5 

我想

domain.com/1/1/1/5 or something 

,我可以再使用爆炸函数来获取变量。

回答

1

对于php中的这种功能,您需要mod_rewrite或您所选择的网络服务器中的等价物,并将url路径改写为get param。

谷歌“干净的URL Drupal的”,在野外的它例子。

3
RewriteEngine On 
RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /?blog=$1&foo=$2&bar=$3&foobar=$4 [L] 

在google上有很多生成器,搜索它和关于重写规则的stackoverflow,你会发现很多信息。

1
RewriteEngine On 
RewriteRule ^(.*)$ /index.php?url=$1 [L] 

然后在您的index.php,你可以做爆炸,定期expresions或whatewer你想$_GET['url']

,或者你可以跳过alredy存在如CSS或JavaScript和图像文件的文件

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^(.*)$ /index.php?url=$1 [NC,L] 
1
RewriteEngine On 

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

RewriteRule ^(.*)/(.*)/(.*)/(.*)$ ?blog=$1&foo=$2&bar=$3&foobar=$4 [PT,L] 

我想,这应该为你的情况下工作特别。 (。*)将由/分隔的任何类型的一个或多个字符组合在一起。在这种情况下,你会得到他们与按键如富

其他方式可能会作为一个字符串爆炸:

RewriteEngine On 

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

RewriteRule ^(.*)$ blog.php?string=$1 [PT,L] 

假设有一个在同一个目录中的文件blog.php的处理字符串 希望它有助于