2012-10-30 150 views
3

我的确有一个关于htaccess的问题。我试图做到以下几点:。Htaccess:如何获取变量表单URL?

blabla.com/lalablabla.com/lulu

拉拉和露露是我的变量(显示在这两个网站不同的内容,却是同一个文件(使用example.php)

所以我在htaccess的所做的是:

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

但呼应GET【类型】当我刚刚得到的文件名(“使用example.php”),但我想让它显示“拉拉”或“露露”

它的工作原理,当我那样做:

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

但我只是不需要 “blablabla”:d提前:)

+0

使用[L ]是明确你需要什么 – Korri

回答

1

感谢试试这个?

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

不,'A-ZA-Z0-9-'会选择'example' – zerkms

+0

也通过htaccess文件中的规则发送的URI的前导斜线剥去 –

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

QSA查询字符串改写

3

但呼应GET【类型】当我刚刚得到的文件名( “使用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] 
+0

嗨,我试过“RewriteRule ^(。+ )$ example.php?type = $ 1 [L,QSA]“。它在example.php上工作。但是它销毁了我已经使用过的页面上的其他页面。我已经在htaccess的顶部使用了以下内容:“RewriteCond%{REQUEST_FILENAME}!-d RewriteCond%{REQUEST_FILENAME}!-f RewriteCond%{REQUEST_URI}!/ $” – user1774597