Htaccess:如何获取变量表单URL?

时间:2012-10-30 20:12:35

标签: php .htaccess mod-rewrite

我对htaccess有疑问。我正在尝试执行以下操作:

blabla.com/lalablabla.com/lulu

lala和lulu是我的变量(在两个网站上显示不同的内容,但它是相同的文件(example.php)。

所以我在htaccess中所做的是:

RewriteRule ^([^&]+)$ example.php?type=$1

但是当回显GET [type]时,我只得到文件名(“example.php”)。但是我想让它显示“lala”或“lulu”。

当我这样做时它会起作用:

RewriteRule ^blablabla/([^&]+)$ example.php?type=$1

但我只是不需要“blablabla”:D

提前致谢:)

3 个答案:

答案 0 :(得分:3)

  

但是当回显GET [type]时,我只得到文件名(“example.php”)。但是我想让它显示“lala”或“lulu”。

这是因为重写规则循环,直到进入重写引擎的URI与引擎发出的URI相同。您的正则表达式^([^&]+)$与您的规则(example.php)的目标相匹配。因此,您需要条件来检查URI是否已经example.php,或者检查请求是否指向不存在的文件或目录:

RerwiteCond %{REQUEST_URI} !/example\.php
RewriteRule ^(.+)$ example.php?type=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ example.php?type=$1 [L,QSA]

答案 1 :(得分:1)

试试这个?

RewriteRule ^([A-Za-z0-9-]+)/?$ example.php?type=$1 [NC,L]

答案 2 :(得分:0)

RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

QSA用于查询字符串重写