使用url中的目录作为php变量

时间:2012-02-14 11:05:13

标签: php .htaccess

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

这样做的原因是,当我创建自己的博客时,这些URL将是SEO友好的。

例如,而不是

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

我想要

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

然后我可以使用explode函数来获取变量。

4 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

对于php中的该功能,您需要在您选择的Web服务器中使用mod_rewrite或等效内容,并将url路径重写为get param。

谷歌“干净的网址drupal”,在野外举例说明。

答案 2 :(得分:1)

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

然后在你的index.php中,你可以使用$_GET['url']

进行爆炸,定期表达或者你想做的事情

或者您可以跳过像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]

答案 3 :(得分:1)

RewriteEngine On

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

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

我认为这应该适用于你的案件。 (。*)将由/分隔的任何类型的一个或多个字符分组。在这种情况下,您将使用密钥例如foo

将它们作为GET

否则作为爆炸的字符串:

RewriteEngine On

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

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

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