3

我确实有关于 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

提前致谢 :)

4

3 回答 3

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]
于 2012-10-30T20:18:31.513 回答
1

尝试这个?

RewriteRule ^([A-Za-z0-9-]+)/?$ example.php?type=$1 [NC,L]
于 2012-10-30T20:16:32.733 回答
0
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]

QSA用于查询字符串重写

于 2012-10-30T20:16:50.070 回答